<!DOCTYPE html>
<!-- saved from url=(0016)http://localhost -->
<html>
  <head>
    <meta charset="utf-8"/>
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <title>三级数据库技术</title>
    <style>
        body{
            margin: 0;
        }
        #content-info{
            width: auto;
            margin: 0 auto;
            text-align: center;
        }
        #author-info{
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
        }
        #title{
            text-overflow: ellipsis;
            white-space: nowrap;
            overflow: hidden;
            padding-top: 10px;
            margin-bottom: 2px;
            font-size: 34px;
            color: #505050;
        }
        .text{
            white-space:nowrap;
            text-overflow: ellipsis;
            display: inline-block;
            margin-right: 20px;
            margin-bottom: 2px;
            font-size: 20px;
            color: #8c8c8c;
        }
        #navBar{
            width: auto;
            height: auto;
            position: fixed;
            right:0;
            bottom: 0;
            background-color: #f0f3f4;
            overflow-y: auto;
            text-align: center;
        }
        #svg-container{
            width: 100%;
            overflow-x: scroll;
            min-width: 0px;
            margin: 0 10px;
        }
        #nav-thumbs{
            overflow-y: scroll;
            padding: 0 5px;
        }
        .nav-thumb{
            position: relative;
            margin: 10px auto;
        }
        .nav-thumb >p{
            text-align: center;
            font-size: 12px;
            margin: 4px 0 0 0;
        }
        .nav-thumb >div{
            position: relative;
            display: inline-block;
            border: 1px solid #c6cfd5;
        }
        .nav-thumb img{
            display: block;
        }
        #main-content{
            bottom: 0;
            left: 0;
            right: 0;
            background-color: #d0cfd8;
            display: flex;
            height: auto;
            flex-flow: row wrap;
            text-align:center;
        }
        #svg-container >svg{
            display: block;
            margin:10px auto;
            margin-bottom: 0;
        }
        #copyright{
            bottom: 0;
            left: 50%;
            margin: 5px auto;
            font-size: 16px;
            color: #515151;
        }
        #copyright >a{
            text-decoration: none;
            color: #77C;
        }
        .number{
            position: absolute;
            top:0;
            left:0;
            border-top:22px solid #08a1ef;
            border-right: 22px solid transparent;
        }
        .pagenum{
            font-size: 12px;
            color: #fff;
            position: absolute;
            top: -23px;
            left: 2px;
        }
            #navBar::-webkit-scrollbar{
            width: 8px;
            background-color: #f5f5f5;
        }
            #navBar::-webkit-scrollbar-track{
            -webkit-box-shadow: inset 0 0 4px rgba(0,0,0,.3);
            border-radius: 8px;
            background-color: #fff;
        }
            #navBar::-webkit-scrollbar-thumb{
            border-radius: 8px;
            -webkit-box-shadow: inset 0 0 4px rgba(0,0,0,.3);
            background-color: #6b6b70;
        }
        #navBar::-webkit-scrollbar-thumb:hover{
            background-color: #4a4a4f;
        }
</style>
  </head>
  <body>
    <div id="main-area">
      <div id="content-info">
        <div id="content-info">
          <div id="title">三级数据库技术</div>
        </div>
        <div id="author-info">
          <div id="author-name" class="text">Administrator</div>
          <div id="share-time" class="text">2019-09-24</div>
        </div>
      </div>
      <div id="main-content">
        <div id="svg-container"><svg preserveAspectRadio="xMinYMin meet" ed:name="Page-1" height="5319" width="3768" ed:vSpacing="30" viewBox="0 0 3768 5320" xmlns="http://www.w3.org/2000/svg" ed:hSpacing="30" id="page1" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:ed="http://www.edrawsoft.cn/xml/2017/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink">
    <style type="text/css"><![CDATA[
g[ed\:togtopicid],g[ed\:hyperlink],g[ed\:comment],g[ed\:note] {cursor:pointer;}
g[id] {-moz-user-select: none;-ms-user-select: none;user-select: none;}
svg text::selection,svg tspan::selection{background-color: #4285f4;color: #ffffff;fill: #ffffff;}
.st3 {fill:#303030;font-family:楷体;font-size:12pt;font-weight:bold}
.st2 {fill:#303030;font-family:楷体;font-size:12pt}
.st1 {fill:#303030;font-family:楷体;font-size:14pt}
.st4 {fill:#303030;font-family:楷体;font-size:18pt}
]]></style>
    <defs>
        <linearGradient y2="100%" x1="0%" id="lg1" x2="0%" y1="0%">
            <stop offset="0" stop-color="#ffffff"/>
            <stop offset="0.25" stop-color="#f0f5f0"/>
            <stop offset="0.75" stop-color="#e1ebe1"/>
            <stop offset="1" stop-color="#c8d7c8"/>
        </linearGradient>
    </defs>
    <rect height="5320" width="3768" y="0" fill="#ffffff" x="0"/>
    <g ed:width="103" ed:height="44" transform="translate(2008,217)" id="102" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L99,0C101.2,0,103,1.8,103,4L103,40C103,42.2,101.2,44,99,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,1232.43)" stroke="#508ab2" id="103" d="M-62.7,1176.9C-62,-257,-12,-1210.4,62.8,-1210.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="60" y="29.5" lengthAdjust="spacing" x="22">约束性</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(2140,195.05)" id="104" ed:layout="rightmap" ed:parentid="102">
        <path stroke-linejoin="round" transform="translate(-14.5,33.72)" stroke="#508ab2" id="105" d="M-14.5,10.2C-0.5,10.2,0.3,-10.2,14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">UNIQUE约束</tspan>
        </text>
    </g>
    <g ed:width="200" ed:height="23.5" transform="translate(2257,178.95)" id="106" ed:layout="rightmap" ed:parentid="104">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="107" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L200,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="192" y="18.8" lengthAdjust="spacing" x="4">强调不是主键的唯一性约束</tspan>
        </text>
    </g>
    <g ed:width="128" ed:height="23.5" transform="translate(2140,259.45)" id="108" ed:layout="rightmap" ed:parentid="102">
        <path stroke-linejoin="round" transform="translate(-14.5,1.52)" stroke="#508ab2" id="109" d="M-14.5,-22C2,-22,-5.6,22,14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L128,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="120" y="18.8" lengthAdjust="spacing" x="4">PRIMARY KEY约束</tspan>
        </text>
    </g>
    <g ed:width="216" ed:height="23.5" transform="translate(2297,243.35)" id="112" ed:layout="rightmap" ed:parentid="108">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="113" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L216,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="208" y="18.8" lengthAdjust="spacing" x="4">强调主键不可以出现相同元素</tspan>
        </text>
    </g>
    <g ed:width="240" ed:height="23.5" transform="translate(2257,211.15)" id="114" ed:layout="rightmap" ed:parentid="104">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="115" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L240,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="232" y="18.8" lengthAdjust="spacing" x="4">允许出现空值 不允许出现重复值</tspan>
        </text>
    </g>
    <g ed:width="120" ed:height="23.5" transform="translate(2297,275.55)" id="116" ed:layout="rightmap" ed:parentid="108">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="117" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L120,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="112" y="18.8" lengthAdjust="spacing" x="4">不允许出现空值</tspan>
        </text>
    </g>
    <g ed:width="323" ed:height="44" transform="translate(2008,349.9)" id="118" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L319,0C321.2,0,323,1.8,323,4L323,40C323,42.2,321.2,44,319,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,1165.98)" stroke="#508ab2" id="119" d="M-62.7,1110.5C-61.9,-243.7,-11.9,-1144,62.8,-1144" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="280" y="29.5" lengthAdjust="spacing" x="22">通过事务等待图来实现死锁检测</tspan>
        </text>
    </g>
    <g ed:width="283" ed:height="44" transform="translate(2008,794.7)" id="120" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L279,0C281.2,0,283,1.8,283,4L283,40C283,42.2,281.2,44,279,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,943.58)" stroke="#508ab2" id="121" d="M-62.7,888.1C-61.7,-199.2,-11.8,-921.6,62.8,-921.6" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="240" y="29.5" lengthAdjust="spacing" x="22">并行数据服务器的两种结构</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(2320,754.75)" id="122" ed:layout="rightmap" ed:parentid="120">
        <path stroke-linejoin="round" transform="translate(-14.5,42.73)" stroke="#508ab2" id="123" d="M-14.5,19.2C1.4,19.2,-4.3,-19.2,14.5,-19.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">完全共享资源结构</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(2320,819.15)" id="124" ed:layout="rightmap" ed:parentid="120">
        <path stroke-linejoin="round" transform="translate(-14.5,10.53)" stroke="#508ab2" id="125" d="M-14.5,-13C0.1,-13,-1.2,13,14.5,13" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">完全不共享资源结构</tspan>
        </text>
    </g>
    <g ed:width="312" ed:height="23.5" transform="translate(2485,738.65)" id="126" ed:layout="rightmap" ed:parentid="122">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="127" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L312,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="304" y="18.8" lengthAdjust="spacing" x="4">对每个数据项的存取都要经过公共通讯线路</tspan>
        </text>
    </g>
    <g ed:width="240" ed:height="23.5" transform="translate(2485,770.85)" id="128" ed:layout="rightmap" ed:parentid="122">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="129" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L240,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="232" y="18.8" lengthAdjust="spacing" x="4">所有处理器共享 内存，磁盘资源</tspan>
        </text>
    </g>
    <g ed:width="296" ed:height="23.5" transform="translate(2501,803.05)" id="130" ed:layout="rightmap" ed:parentid="124">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="131" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L296,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="288" y="18.8" lengthAdjust="spacing" x="4">高功能计算机系统由多个较小的系统组成</tspan>
        </text>
    </g>
    <g ed:width="584" ed:height="23.5" transform="translate(2501,835.25)" id="132" ed:layout="rightmap" ed:parentid="124">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="133" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L584,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="576" y="18.8" lengthAdjust="spacing" x="4">每个站点都要实现全局数据目录，每个站点有独立的内存和磁盘对该站点的服务器</tspan>
        </text>
    </g>
    <g ed:width="123" ed:height="44" transform="translate(1634,2510.95)" id="134" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L119,0C121.2,0,123,1.8,123,4L123,40C123,42.2,121.2,44,119,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(185.75,85.45)" stroke="#508ab2" id="135" d="M59.2,29.9C46.6,-27.2,0.9,-63.5,-62.8,-63.5" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="80" y="29.5" lengthAdjust="spacing" x="22">数据仓库</tspan>
        </text>
    </g>
    <g ed:width="440" ed:height="23.5" transform="translate(1165,2489)" id="136" ed:layout="leftmap" ed:parentid="134">
        <path stroke-linejoin="round" transform="translate(454.5,33.73)" stroke="#508ab2" id="137" d="M14.5,10.2C0.5,10.2,-0.3,-10.2,-14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L440,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="432" y="18.8" lengthAdjust="spacing" x="4">为了构建新的分析处理环境而出现的一种数据存储和组织技术</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(1565,2521.2)" id="138" ed:layout="leftmap" ed:parentid="134">
        <path stroke-linejoin="round" transform="translate(54.5,17.63)" stroke="#508ab2" id="139" d="M14.5,-5.9C1.5,-5.9,-2.6,5.9,-14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">特征</tspan>
        </text>
    </g>
    <g ed:width="424" ed:height="23.5" transform="translate(1112,2521.2)" id="140" ed:layout="leftmap" ed:parentid="138">
        <path stroke-linejoin="round" transform="translate(438.5,23.5)" stroke="#508ab2" id="141" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L424,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="416" y="18.8" lengthAdjust="spacing" x="4">数据是面向主题的、集成的、非易失的、随时间不断变化的</tspan>
        </text>
    </g>
    <g ed:width="83" ed:height="44" transform="translate(1674,2180.75)" id="142" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L79,0C81.2,0,83,1.8,83,4L83,40C83,42.2,81.2,44,79,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(145.75,250.55)" stroke="#508ab2" id="143" d="M62.5,195.1C58.6,-60.5,9.4,-228.6,-62.8,-228.6" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="40" y="29.5" lengthAdjust="spacing" x="22">粒度</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1493,2158.8)" id="144" ed:layout="leftmap" ed:parentid="142">
        <path stroke-linejoin="round" transform="translate(166.5,33.73)" stroke="#508ab2" id="145" d="M14.5,10.2C0.5,10.2,-0.3,-10.2,-14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">是指数据的细化程度</tspan>
        </text>
    </g>
    <g ed:width="200" ed:height="23.5" transform="translate(1445,2191)" id="146" ed:layout="leftmap" ed:parentid="142">
        <path stroke-linejoin="round" transform="translate(214.5,17.63)" stroke="#508ab2" id="147" d="M14.5,-5.9C1.5,-5.9,-2.6,5.9,-14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L200,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="192" y="18.8" lengthAdjust="spacing" x="4">细化程度越高，粒度就越小</tspan>
        </text>
    </g>
    <g ed:width="208" ed:height="23.5" transform="translate(1437,2223.2)" id="148" ed:layout="leftmap" ed:parentid="142">
        <path stroke-linejoin="round" transform="translate(222.5,1.53)" stroke="#508ab2" id="149" d="M14.5,-22C-2,-22,5.6,22,-14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L208,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="200" y="18.8" lengthAdjust="spacing" x="4">细化程度越低，粒度就越大 </tspan>
        </text>
    </g>
    <g ed:width="123" ed:height="44" transform="translate(1634,2047.85)" id="171" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L119,0C121.2,0,123,1.8,123,4L123,40C123,42.2,121.2,44,119,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(185.75,317)" stroke="#508ab2" id="172" d="M62.6,261.5C59.5,-73.8,10.1,-295,-62.8,-295" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="80" y="29.5" lengthAdjust="spacing" x="22">日志文件</tspan>
        </text>
    </g>
    <g ed:width="344" ed:height="23.5" transform="translate(1261,2025.9)" id="173" ed:layout="leftmap" ed:parentid="171">
        <path stroke-linejoin="round" transform="translate(358.5,33.73)" stroke="#508ab2" id="174" d="M14.5,10.2C0.5,10.2,-0.3,-10.2,-14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L344,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="336" y="18.8" lengthAdjust="spacing" x="4">日志的写入顺序和并行事务执行的时间必须一致</tspan>
        </text>
    </g>
    <g ed:width="608" ed:height="23.5" transform="translate(624,2025.9)" id="175" ed:layout="leftmap" ed:parentid="173">
        <path stroke-linejoin="round" transform="translate(622.5,23.5)" stroke="#508ab2" id="176" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L608,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="600" y="18.8" lengthAdjust="spacing" x="4">只有这样才能在数据库恢复时进行redo,undo操作，保证数据的一致性不会产生脏数据</tspan>
        </text>
    </g>
    <g ed:width="392" ed:height="23.5" transform="translate(1213,2058.1)" id="177" ed:layout="leftmap" ed:parentid="171">
        <path stroke-linejoin="round" transform="translate(406.5,17.63)" stroke="#508ab2" id="178" d="M14.5,-5.9C1.5,-5.9,-2.6,5.9,-14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L392,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="384" y="18.8" lengthAdjust="spacing" x="4">为了保证数据库是可恢复的，必须先写日志再写数据库</tspan>
        </text>
    </g>
    <g ed:width="168" ed:height="23.5" transform="translate(1437,2090.3)" id="179" ed:layout="leftmap" ed:parentid="171">
        <path stroke-linejoin="round" transform="translate(182.5,1.52)" stroke="#508ab2" id="180" d="M14.5,-22C-2,-22,5.6,22,-14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L168,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="160" y="18.8" lengthAdjust="spacing" x="4">事务恢复同样需要日志</tspan>
        </text>
    </g>
    <g ed:width="123" ed:height="44" transform="translate(2008,1714.45)" id="181" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L119,0C121.2,0,123,1.8,123,4L123,40C123,42.2,121.2,44,119,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,483.7)" stroke="#508ab2" id="182" d="M-62.7,428.2C-60.7,-107.2,-11,-461.7,62.8,-461.7" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="80" y="29.5" lengthAdjust="spacing" x="22">数据恢复</tspan>
        </text>
    </g>
    <g ed:width="632" ed:height="23.5" transform="translate(2160,1724.7)" id="187" ed:layout="rightmap" ed:parentid="181">
        <path stroke-linejoin="round" transform="translate(-14.5,17.63)" stroke="#508ab2" id="188" d="M-14.5,-5.9C-1.5,-5.9,2.6,5.9,14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L632,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="624" y="18.8" lengthAdjust="spacing" x="4">首先恢复完全备份，其次恢复差异备份，最后恢复日志备份（Norecovery用来备份尾日志</tspan>
        </text>
    </g>
    <g ed:width="83" ed:height="44" transform="translate(2008,2103.2)" id="189" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L79,0C81.2,0,83,1.8,83,4L83,40C83,42.2,81.2,44,79,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,289.33)" stroke="#508ab2" id="190" d="M-62.6,233.8C-59.2,-68.3,-9.9,-267.3,62.8,-267.3" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="40" y="29.5" lengthAdjust="spacing" x="22">备份</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(2120,2065.15)" id="191" ed:layout="rightmap" ed:parentid="189">
        <path stroke-linejoin="round" transform="translate(-14.5,41.78)" stroke="#508ab2" id="192" d="M-14.5,18.3C1.2,18.3,-3.8,-18.3,14.5,-18.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">master只支持完全数据库备份操作</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(2320,706.45)" id="193" ed:layout="rightmap" ed:parentid="120">
        <path stroke-linejoin="round" transform="translate(-14.5,66.88)" stroke="#508ab2" id="194" d="M-14.5,43.4C5.1,43.4,-12.9,-43.4,14.5,-43.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">目的</tspan>
        </text>
    </g>
    <g ed:width="872" ed:height="23.5" transform="translate(2389,706.45)" id="195" ed:layout="rightmap" ed:parentid="193">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="196" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L872,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="864" y="18.8" lengthAdjust="spacing" x="4">是通过高速通信介质连接多个可独立处理的单元以并行执行的方式完成对数据库系统的互联查询、内部查询及各种内部操作</tspan>
        </text>
    </g>
    <g ed:width="163" ed:height="44" transform="translate(2008,1074.4)" id="197" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,40C163,42.2,161.2,44,159,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,803.73)" stroke="#508ab2" id="198" d="M-62.7,748.2C-61.5,-171.2,-11.7,-781.7,62.8,-781.7" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="120" y="29.5" lengthAdjust="spacing" x="22">分布式数据库</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(2200,971.95)" id="199" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,73.98)" stroke="#508ab2" id="200" d="M-14.5,50.5C5.6,50.5,-14.1,-50.5,14.5,-50.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">目的</tspan>
        </text>
    </g>
    <g ed:width="264" ed:height="23.5" transform="translate(2269,971.95)" id="201" ed:layout="rightmap" ed:parentid="199">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="202" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L264,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="256" y="18.8" lengthAdjust="spacing" x="4">实现场地自治和数据全局透明共享。</tspan>
        </text>
    </g>
    <g ed:width="312" ed:height="23.5" transform="translate(2200,1036.35)" id="205" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,41.78)" stroke="#508ab2" id="206" d="M-14.5,18.3C1.2,18.3,-3.8,-18.3,14.5,-18.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L312,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="304" y="18.8" lengthAdjust="spacing" x="4">集中式指所有数据片断都安排在一个场地上</tspan>
        </text>
    </g>
    <g ed:width="664" ed:height="23.5" transform="translate(2200,1068.55)" id="207" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,25.68)" stroke="#508ab2" id="208" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L664,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="656" y="18.8" lengthAdjust="spacing" x="4">分割式指全局数据有且只有一份，它们被分割成若干片段，每个片段被分配在一个特定场地上</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(2200,1100.75)" id="209" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,9.58)" stroke="#508ab2" id="210" d="M-14.5,-13.9C0.3,-13.9,-1.7,13.9,14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">全复制式是在每个站点上都有全局数据的复制样本，数据的冗余性最大</tspan>
        </text>
    </g>
    <g ed:width="872" ed:height="23.5" transform="translate(2200,1132.95)" id="211" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,-6.52)" stroke="#508ab2" id="212" d="M-14.5,-30C3.4,-30,-8.9,30,14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L872,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="864" y="18.8" lengthAdjust="spacing" x="4">混合式指全局数据被分为若干个数据子集，每个子集被安排在一个或多个不同的场地上，但是每个场地未必保存所有数据。</tspan>
        </text>
    </g>
    <g ed:width="83" ed:height="44" transform="translate(2008,1512.1)" id="213" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L79,0C81.2,0,83,1.8,83,4L83,40C83,42.2,81.2,44,79,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,584.88)" stroke="#508ab2" id="214" d="M-62.7,529.4C-61.1,-127.4,-11.3,-562.9,62.8,-562.9" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="40" y="29.5" lengthAdjust="spacing" x="22">联机</tspan>
        </text>
    </g>
    <g ed:width="144" ed:height="23.5" transform="translate(2120,1430.95)" id="215" ed:layout="rightmap" ed:parentid="213">
        <path stroke-linejoin="round" transform="translate(-14.5,63.33)" stroke="#508ab2" id="216" d="M-14.5,39.8C4.8,39.8,-12.1,-39.8,14.5,-39.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L144,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="136" y="18.8" lengthAdjust="spacing" x="4">联机事务处理 OLTP</tspan>
        </text>
    </g>
    <g ed:width="144" ed:height="23.5" transform="translate(2120,1570.65)" id="217" ed:layout="rightmap" ed:parentid="213">
        <path stroke-linejoin="round" transform="translate(-14.5,-6.52)" stroke="#508ab2" id="218" d="M-14.5,-30C3.4,-30,-8.9,30,14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L144,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="136" y="18.8" lengthAdjust="spacing" x="4">联机分析处理 OLAP</tspan>
        </text>
    </g>
    <g ed:width="472" ed:height="23.5" transform="translate(2293,1398.75)" id="219" ed:layout="rightmap" ed:parentid="215">
        <path stroke-linejoin="round" transform="translate(-14.5,39.6)" stroke="#508ab2" id="220" d="M-14.5,16.1C0.8,16.1,-2.8,-16.1,14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L472,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="464" y="18.8" lengthAdjust="spacing" x="4">OLTP是对数据库联机的日常操作，通常是对一条记录的查询和修改</tspan>
        </text>
    </g>
    <g ed:width="552" ed:height="23.5" transform="translate(2293,1430.95)" id="221" ed:layout="rightmap" ed:parentid="215">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="222" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L552,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="544" y="18.8" lengthAdjust="spacing" x="4">要求快速响应用户的请求，对数据的安全性、完整性及事物吞吐量要求很高。</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(2293,1495.35)" id="223" ed:layout="rightmap" ed:parentid="217">
        <path stroke-linejoin="round" transform="translate(-14.5,61.15)" stroke="#508ab2" id="224" d="M-14.5,37.6C4.5,37.6,-11.5,-37.6,14.5,-37.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">OLAP是对数据的查询和分析操作，通常是对海量历史数据的查询和分析</tspan>
        </text>
    </g>
    <g ed:width="360" ed:height="23.5" transform="translate(2293,1527.55)" id="225" ed:layout="rightmap" ed:parentid="217">
        <path stroke-linejoin="round" transform="translate(-14.5,45.05)" stroke="#508ab2" id="226" d="M-14.5,21.6C1.9,21.6,-5.4,-21.6,14.5,-21.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L360,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="352" y="18.8" lengthAdjust="spacing" x="4">要访问的数据量非常大，查询和分析操作十分复杂</tspan>
        </text>
    </g>
    <g ed:width="312" ed:height="23.5" transform="translate(2293,1559.75)" id="227" ed:layout="rightmap" ed:parentid="217">
        <path stroke-linejoin="round" transform="translate(-14.5,28.95)" stroke="#508ab2" id="228" d="M-14.5,5.5C-1.6,5.5,2.8,-5.5,14.5,-5.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L312,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="304" y="18.8" lengthAdjust="spacing" x="4">OLAP为宏观分析  面向中上层和决策者使用</tspan>
        </text>
    </g>
    <g ed:width="368" ed:height="23.5" transform="translate(2293,1463.15)" id="229" ed:layout="rightmap" ed:parentid="215">
        <path stroke-linejoin="round" transform="translate(-14.5,7.4)" stroke="#508ab2" id="230" d="M-14.5,-16.1C0.8,-16.1,-2.8,16.1,14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L368,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="360" y="18.8" lengthAdjust="spacing" x="4">OLTP为微观操作  面向企业的中下层业务人员使用 </tspan>
        </text>
    </g>
    <g ed:width="488" ed:height="23.5" transform="translate(2360,344.05)" id="252" ed:layout="rightmap" ed:parentid="118">
        <path stroke-linejoin="round" transform="translate(-14.5,25.67)" stroke="#508ab2" id="253" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L488,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="480" y="18.8" lengthAdjust="spacing" x="4">是周期性的生成事务等待图进行检测，不是执行每个事务都进行检测</tspan>
        </text>
    </g>
    <g ed:width="103" ed:height="44" transform="translate(1654,1383.15)" id="254" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L99,0C101.2,0,103,1.8,103,4L103,40C103,42.2,101.2,44,99,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(165.75,649.35)" stroke="#508ab2" id="255" d="M62.7,593.9C61.2,-140.3,11.4,-627.4,-62.8,-627.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="60" y="29.5" lengthAdjust="spacing" x="22">小知识</tspan>
        </text>
    </g>
    <g ed:width="352" ed:height="23.5" transform="translate(1273,829.4)" id="256" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(366.5,299.62)" stroke="#508ab2" id="257" d="M14.5,276.1C-5.8,276.1,14.5,-276.1,-14.5,-276.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L352,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="344" y="18.8" lengthAdjust="spacing" x="4">增加冗余列可以减少查询过程中的JOIN连接操作 </tspan>
        </text>
    </g>
    <g ed:width="648" ed:height="23.5" transform="translate(2360,376.25)" id="258" ed:layout="rightmap" ed:parentid="118">
        <path stroke-linejoin="round" transform="translate(-14.5,9.58)" stroke="#508ab2" id="259" d="M-14.5,-13.9C0.3,-13.9,-1.7,13.9,14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L648,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="640" y="18.8" lengthAdjust="spacing" x="4">检测事务等待图并撤销回路中的某个事务是在数据库应用系统运行过程中由DBMS完成的工作</tspan>
        </text>
    </g>
    <g ed:width="293" ed:height="44" transform="translate(2008,531.1)" id="260" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L289,0C291.2,0,293,1.8,293,4L293,40C293,42.2,291.2,44,289,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,1075.38)" stroke="#508ab2" id="261" d="M-62.7,1019.9C-61.9,-225.5,-11.9,-1053.4,62.8,-1053.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="250" y="29.5" lengthAdjust="spacing" x="22"> 程序设计中预防死锁的办法</tspan>
        </text>
    </g>
    <g ed:width="184" ed:height="23.5" transform="translate(2330,444.75)" id="262" ed:layout="rightmap" ed:parentid="260">
        <path stroke-linejoin="round" transform="translate(-14.5,65.93)" stroke="#508ab2" id="263" d="M-14.5,42.4C5,42.4,-12.7,-42.4,14.5,-42.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L184,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="176" y="18.8" lengthAdjust="spacing" x="4">事务按同一顺序访问资源</tspan>
        </text>
    </g>
    <g ed:width="344" ed:height="23.5" transform="translate(2330,509.15)" id="264" ed:layout="rightmap" ed:parentid="260">
        <path stroke-linejoin="round" transform="translate(-14.5,33.73)" stroke="#508ab2" id="265" d="M-14.5,10.2C-0.5,10.2,0.3,-10.2,14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L344,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="336" y="18.8" lengthAdjust="spacing" x="4">将大事务切成若干个小事务、采用小事务模式，</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(2330,541.35)" id="266" ed:layout="rightmap" ed:parentid="260">
        <path stroke-linejoin="round" transform="translate(-14.5,17.63)" stroke="#508ab2" id="267" d="M-14.5,-5.9C-1.5,-5.9,2.6,5.9,14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">使用绑定连接</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(2120,2113.45)" id="268" ed:layout="rightmap" ed:parentid="189">
        <path stroke-linejoin="round" transform="translate(-14.5,17.63)" stroke="#508ab2" id="269" d="M-14.5,-5.9C-1.5,-5.9,2.6,5.9,14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">差异备份</tspan>
        </text>
    </g>
    <g ed:width="424" ed:height="23.5" transform="translate(2221,2097.35)" id="270" ed:layout="rightmap" ed:parentid="268">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="271" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L424,23.5" fill="none"/>
        <rect height="18" width="80.7" y="3.8" fill="#800000" x="348"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="336" y="18.8" lengthAdjust="spacing" x="4">从最近一次完整备份到当前时间数据库中变化的</tspan>
            <tspan style="white-space:pre" textLength="80" lengthAdjust="spacing" x="340">数据和日志</tspan>
        </text>
    </g>
    <g ed:width="296" ed:height="23.5" transform="translate(2120,2161.75)" id="272" ed:layout="rightmap" ed:parentid="189">
        <path stroke-linejoin="round" transform="translate(-14.5,-6.52)" stroke="#508ab2" id="273" d="M-14.5,-30C3.4,-30,-8.9,30,14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L296,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="288" y="18.8" lengthAdjust="spacing" x="4">使用日志备份不能降低数据库的备份空间</tspan>
        </text>
    </g>
    <g ed:width="143" ed:height="44" transform="translate(2008,1287.8)" id="274" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L139,0C141.2,0,143,1.8,143,4L143,40C143,42.2,141.2,44,139,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,697.03)" stroke="#508ab2" id="275" d="M-62.7,641.5C-61.4,-149.9,-11.5,-675,62.8,-675" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="100" y="29.5" lengthAdjust="spacing" x="22">分布透明性</tspan>
        </text>
    </g>
    <g ed:width="712" ed:height="23.5" transform="translate(2180,1265.85)" id="276" ed:layout="rightmap" ed:parentid="274">
        <path stroke-linejoin="round" transform="translate(-14.5,33.73)" stroke="#508ab2" id="277" d="M-14.5,10.2C-0.5,10.2,0.3,-10.2,14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L712,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="704" y="18.8" lengthAdjust="spacing" x="4">分片透明性：是最高层次，指的是用户或应用程序只对全局关系进行操作而不必考虑关系分片的情况</tspan>
        </text>
    </g>
    <g ed:width="696" ed:height="23.5" transform="translate(2180,1298.05)" id="278" ed:layout="rightmap" ed:parentid="274">
        <path stroke-linejoin="round" transform="translate(-14.5,17.63)" stroke="#508ab2" id="279" d="M-14.5,-5.9C-1.5,-5.9,2.6,5.9,14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L696,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="688" y="18.8" lengthAdjust="spacing" x="4">位置透明性：是下一层次，指用户或应用程序只需了解数据分片情况，而不必了解片段的存储场地</tspan>
        </text>
    </g>
    <g ed:width="1416" ed:height="23.5" transform="translate(2180,1330.25)" id="280" ed:layout="rightmap" ed:parentid="274">
        <path stroke-linejoin="round" transform="translate(-14.5,1.53)" stroke="#508ab2" id="281" d="M-14.5,-22C2,-22,-5.6,22,14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L1416,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="1408" y="18.8" lengthAdjust="spacing" x="4">局部数据模型透明性：指的是用户或用户程序不必了解局部场地上使用的是哪种数据模型，但是必须了解全局数据的分片情况，还需了解各片断的副本复制情况及各片断和它们副本的场地位置分配情况</tspan>
        </text>
    </g>
    <g ed:width="163" ed:height="44" transform="translate(1594,4680.35)" id="297" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,40C163,42.2,161.2,44,159,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(225.75,-999.25)" stroke="#508ab2" id="298" d="M62.7,-987.8C61.8,219.1,11.9,1021.3,-62.8,1021.3" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="120" y="29.5" lengthAdjust="spacing" x="22">DBAS性能指标</tspan>
        </text>
    </g>
    <g ed:width="83" ed:height="44" transform="translate(2008,2325.6)" id="299" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L79,0C81.2,0,83,1.8,83,4L83,40C83,42.2,81.2,44,79,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,178.13)" stroke="#508ab2" id="300" d="M-62.2,122.6C-56.5,-46,-8,-156.1,62.8,-156.1" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="40" y="29.5" lengthAdjust="spacing" x="22">索引</tspan>
        </text>
    </g>
    <g ed:width="376" ed:height="23.5" transform="translate(2120,2230.25)" id="301" ed:layout="rightmap" ed:parentid="299">
        <path stroke-linejoin="round" transform="translate(-14.5,70.42)" stroke="#508ab2" id="302" d="M-14.5,46.9C5.4,46.9,-13.6,-46.9,14.5,-46.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L376,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="368" y="18.8" lengthAdjust="spacing" x="4">聚集索引：索引项的顺序与表中记录的物理顺序一致</tspan>
        </text>
    </g>
    <g ed:width="183" ed:height="44" transform="translate(2008,2660.7)" id="306" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L179,0C181.2,0,183,1.8,183,4L183,40C183,42.2,181.2,44,179,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,10.58)" stroke="#508ab2" id="307" d="M-0.3,8.8C17.7,10.5,39,11.4,62.8,11.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="140" y="29.5" lengthAdjust="spacing" x="22">数据模型三要素</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="41.5" transform="translate(2220,2533.15)" id="308" ed:layout="rightmap" ed:parentid="306">
        <path stroke-linejoin="round" transform="translate(-14.5,95.53)" stroke="#508ab2" id="309" d="M-14.5,54C5.7,54,-14.4,-54,14.5,-54" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,41.5L88,41.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">①数据结构</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(2337,2509.95)" id="310" ed:layout="rightmap" ed:parentid="308">
        <path stroke-linejoin="round" transform="translate(-14.5,44.1)" stroke="#508ab2" id="311" d="M-14.5,20.6C1.7,20.6,-4.9,-20.6,14.5,-20.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">研究对象类型的集合</tspan>
        </text>
    </g>
    <g ed:width="184" ed:height="23.5" transform="translate(2337,2574.35)" id="312" ed:layout="rightmap" ed:parentid="308">
        <path stroke-linejoin="round" transform="translate(-14.5,11.9)" stroke="#508ab2" id="313" d="M-14.5,-11.6C-0.2,-11.6,-0.5,11.6,14.5,11.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L184,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="176" y="18.8" lengthAdjust="spacing" x="4">是对系统静态特征的描述</tspan>
        </text>
    </g>
    <g ed:width="552" ed:height="23.5" transform="translate(2337,2542.15)" id="314" ed:layout="rightmap" ed:parentid="308">
        <path stroke-linejoin="round" transform="translate(-14.5,28)" stroke="#508ab2" id="315" d="M-14.5,4.5C-1.8,4.5,3.3,-4.5,14.5,-4.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L552,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="544" y="18.8" lengthAdjust="spacing" x="4">从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(2220,2654.85)" id="316" ed:layout="rightmap" ed:parentid="306">
        <path stroke-linejoin="round" transform="translate(-14.5,25.68)" stroke="#508ab2" id="317" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">②数据操作</tspan>
        </text>
    </g>
    <g ed:width="344" ed:height="23.5" transform="translate(2337,2606.55)" id="318" ed:layout="rightmap" ed:parentid="316">
        <path stroke-linejoin="round" transform="translate(-14.5,47.65)" stroke="#508ab2" id="319" d="M-14.5,24.1C2.4,24.1,-6.6,-24.1,14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L344,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="336" y="18.8" lengthAdjust="spacing" x="4">是对数据库中对象的实例允许执行的操作的集合</tspan>
        </text>
    </g>
    <g ed:width="360" ed:height="23.5" transform="translate(2337,2638.75)" id="320" ed:layout="rightmap" ed:parentid="316">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="321" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L360,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="352" y="18.8" lengthAdjust="spacing" x="4">主要指检索和更新（插入、删除、修改）两类操作</tspan>
        </text>
    </g>
    <g ed:width="696" ed:height="23.5" transform="translate(2337,2670.95)" id="322" ed:layout="rightmap" ed:parentid="316">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="323" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L696,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="688" y="18.8" lengthAdjust="spacing" x="4">数据模型必须定义这些操作的确切含义、操作符号、操作规则（如优先级）以及实现操作的语言。</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(2220,2783.65)" id="324" ed:layout="rightmap" ed:parentid="306">
        <path stroke-linejoin="round" transform="translate(-14.5,-38.72)" stroke="#508ab2" id="325" d="M-14.5,-62.2C5.8,-62.2,-14.5,62.2,14.5,62.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">③数据完整性约束</tspan>
        </text>
    </g>
    <g ed:width="264" ed:height="23.5" transform="translate(2337,2703.15)" id="326" ed:layout="rightmap" ed:parentid="316">
        <path stroke-linejoin="round" transform="translate(-14.5,-0.65)" stroke="#508ab2" id="327" d="M-14.5,-24.1C2.4,-24.1,-6.6,24.1,14.5,24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L264,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="256" y="18.8" lengthAdjust="spacing" x="4">数据操作是对系统动态特性的描述。</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(2385,2735.35)" id="328" ed:layout="rightmap" ed:parentid="324">
        <path stroke-linejoin="round" transform="translate(-14.5,47.65)" stroke="#508ab2" id="329" d="M-14.5,24.1C2.4,24.1,-6.6,-24.1,14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">是一组完整性规则的集合，规定数据库状态及状态变化所应满足的条件</tspan>
        </text>
    </g>
    <g ed:width="296" ed:height="23.5" transform="translate(2385,2767.55)" id="330" ed:layout="rightmap" ed:parentid="324">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="331" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L296,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="288" y="18.8" lengthAdjust="spacing" x="4">以保证数据的正确性、有效性和相容性。</tspan>
        </text>
    </g>
    <g ed:width="223" ed:height="44" transform="translate(2008,3002.9)" id="332" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L219,0C221.2,0,223,1.8,223,4L223,40C223,42.2,221.2,44,219,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-160.52)" stroke="#508ab2" id="333" d="M-62.3,-149C-57.5,51.3,-8.6,182.5,62.8,182.5" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="180" y="29.5" lengthAdjust="spacing" x="22">数据库三级模式结构</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(2260,3077.55)" id="334" ed:layout="rightmap" ed:parentid="332">
        <path stroke-linejoin="round" transform="translate(-14.5,-14.57)" stroke="#508ab2" id="335" d="M-14.5,-38.1C4.6,-38.1,-11.6,38.1,14.5,38.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">③内模式也称存储模式或物理模式</tspan>
        </text>
    </g>
    <g ed:width="520" ed:height="23.5" transform="translate(2537,3061.45)" id="336" ed:layout="rightmap" ed:parentid="334">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="337" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L520,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="512" y="18.8" lengthAdjust="spacing" x="4">它是数据物理结构和存储结构的描述，是数据在数据库内部的表示方式。</tspan>
        </text>
    </g>
    <g ed:width="232" ed:height="23.5" transform="translate(2260,2916.55)" id="338" ed:layout="rightmap" ed:parentid="332">
        <path stroke-linejoin="round" transform="translate(-14.5,65.93)" stroke="#508ab2" id="339" d="M-14.5,42.4C5,42.4,-12.7,-42.4,14.5,-42.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L232,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="224" y="18.8" lengthAdjust="spacing" x="4">①外模式也称子模式或用户模式</tspan>
        </text>
    </g>
    <g ed:width="1096" ed:height="23.5" transform="translate(2521,2900.45)" id="340" ed:layout="rightmap" ed:parentid="338">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="341" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L1096,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="1088" y="18.8" lengthAdjust="spacing" x="4">是数据库用户（包括应用程序员和最终用户）看见和使用的局部数据的逻辑结构和特征的描述，是数据库用户的视图，是与某一应用有关的数据的逻辑表示</tspan>
        </text>
    </g>
    <g ed:width="392" ed:height="23.5" transform="translate(2521,2932.65)" id="342" ed:layout="rightmap" ed:parentid="338">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="343" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L392,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="384" y="18.8" lengthAdjust="spacing" x="4">外模式是模式的子集，一个数据库可以有多个外模式。</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(2260,2997.05)" id="344" ed:layout="rightmap" ed:parentid="332">
        <path stroke-linejoin="round" transform="translate(-14.5,25.68)" stroke="#508ab2" id="345" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">②模式也称逻辑模式</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(2537,3093.65)" id="346" ed:layout="rightmap" ed:parentid="334">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="347" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">并且一个数据库只有一个内模式。</tspan>
        </text>
    </g>
    <g ed:width="536" ed:height="23.5" transform="translate(2441,2964.85)" id="348" ed:layout="rightmap" ed:parentid="344">
        <path stroke-linejoin="round" transform="translate(-14.5,39.6)" stroke="#508ab2" id="349" d="M-14.5,16.1C0.8,16.1,-2.8,-16.1,14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L536,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="528" y="18.8" lengthAdjust="spacing" x="4">是数据库中全体数据的逻辑结构和特征的描述，是所有用户的公共数据视图</tspan>
        </text>
    </g>
    <g ed:width="536" ed:height="23.5" transform="translate(2441,2997.05)" id="350" ed:layout="rightmap" ed:parentid="344">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="351" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L536,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="528" y="18.8" lengthAdjust="spacing" x="4">它是数据库系统模式结构的中间层，不涉及数据的物理存储细节和硬件环境</tspan>
        </text>
    </g>
    <g ed:width="440" ed:height="23.5" transform="translate(2441,3029.25)" id="352" ed:layout="rightmap" ed:parentid="344">
        <path stroke-linejoin="round" transform="translate(-14.5,7.4)" stroke="#508ab2" id="353" d="M-14.5,-16.1C0.8,-16.1,-2.8,16.1,14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L440,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="432" y="18.8" lengthAdjust="spacing" x="4">与具体的应用和所使用的开发工具及高级程序设计语言无关。</tspan>
        </text>
    </g>
    <g ed:width="840" ed:height="23.5" transform="translate(2260,3125.85)" id="354" ed:layout="rightmap" ed:parentid="332">
        <path stroke-linejoin="round" transform="translate(-14.5,-38.72)" stroke="#508ab2" id="355" d="M-14.5,-62.2C5.8,-62.2,-14.5,62.2,14.5,62.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L840,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="832" y="18.8" lengthAdjust="spacing" x="4">数据库系统的三级模式结构是指数据库由外模式、模式和内模式三级构成，并通过二级映象功能将三个模式联系起来。</tspan>
        </text>
    </g>
    <g ed:width="263" ed:height="44" transform="translate(1494,3304.75)" id="356" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L259,0C261.2,0,263,1.8,263,4L263,40C263,42.2,261.2,44,259,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(325.75,-311.45)" stroke="#508ab2" id="357" d="M62.6,-299.9C59.9,81.5,10.4,333.4,-62.8,333.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="220" y="29.5" lengthAdjust="spacing" x="22">需求分析常用的建模方法</tspan>
        </text>
    </g>
    <g ed:width="96" ed:height="23.5" transform="translate(1369,3073.5)" id="358" ed:layout="leftmap" ed:parentid="356">
        <path stroke-linejoin="round" transform="translate(110.5,138.38)" stroke="#508ab2" id="359" d="M14.5,114.9C-5.8,114.9,14.5,-114.9,-14.5,-114.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L96,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="88" y="18.8" lengthAdjust="spacing" x="4">DFD建模方法</tspan>
        </text>
    </g>
    <g ed:width="864" ed:height="23.5" transform="translate(476,2966)" id="360" ed:layout="leftmap" ed:parentid="358">
        <path stroke-linejoin="round" transform="translate(878.5,77.25)" stroke="#508ab2" id="361" d="M14.5,53.8C-5.7,53.8,14.4,-53.8,-14.5,-53.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L864,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="856" y="18.8" lengthAdjust="spacing" x="4">DFD建模方法的核心是数据流，它能精确地在逻辑上描述系统的功能、输入、输出和数据存储等，从而摆脱了其物理内容。</tspan>
        </text>
    </g>
    <g ed:width="312" ed:height="23.5" transform="translate(1028,2998.2)" id="362" ed:layout="leftmap" ed:parentid="358">
        <path stroke-linejoin="round" transform="translate(326.5,61.15)" stroke="#508ab2" id="363" d="M14.5,37.6C-4.5,37.6,11.5,-37.6,-14.5,-37.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L312,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="304" y="18.8" lengthAdjust="spacing" x="4">数据流图是系统逻辑模型的重要组成部分。</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(1300,3062.6)" id="366" ed:layout="leftmap" ed:parentid="358">
        <path stroke-linejoin="round" transform="translate(54.5,28.95)" stroke="#508ab2" id="367" d="M14.5,5.5C1.6,5.5,-2.8,-5.5,-14.5,-5.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">特性</tspan>
        </text>
    </g>
    <g ed:width="1120" ed:height="23.5" transform="translate(151,3030.4)" id="368" ed:layout="leftmap" ed:parentid="366">
        <path stroke-linejoin="round" transform="translate(1134.5,39.6)" stroke="#508ab2" id="369" d="M14.5,16.1C-0.8,16.1,2.8,-16.1,-14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L1120,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="1112" y="18.8" lengthAdjust="spacing" x="4">①抽象性：在DFD中具体的组织机构、工作场所、物质流等都已经去掉，只剩下信息和数据存储、流动、使用以及加工的情况。所以描述的是抽象出来的数据。</tspan>
        </text>
    </g>
    <g ed:width="776" ed:height="23.5" transform="translate(495,3062.6)" id="372" ed:layout="leftmap" ed:parentid="366">
        <path stroke-linejoin="round" transform="translate(790.5,23.5)" stroke="#508ab2" id="373" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L776,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="768" y="18.8" lengthAdjust="spacing" x="4">②概括性：它把系统对各种业务的处理过程联系起来考虑，形成一个总体，可反映出数据流之间的概括情况。</tspan>
        </text>
    </g>
    <g ed:width="133" ed:height="44" transform="translate(1624,505.05)" id="402" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L129,0C131.2,0,133,1.8,133,4L133,40C133,42.2,131.2,44,129,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(195.75,1088.4)" stroke="#508ab2" id="403" d="M62.7,1032.9C61.9,-228.1,11.9,-1066.4,-62.8,-1066.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="90" y="29.5" lengthAdjust="spacing" x="22">XML数据库</tspan>
        </text>
    </g>
    <g ed:width="208" ed:height="23.5" transform="translate(1387,499.2)" id="404" ed:layout="leftmap" ed:parentid="402">
        <path stroke-linejoin="round" transform="translate(222.5,25.67)" stroke="#508ab2" id="405" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L208,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="200" y="18.8" lengthAdjust="spacing" x="4">主要包括XEDB,NXD和HXD三种</tspan>
        </text>
    </g>
    <g ed:width="512" ed:height="23.5" transform="translate(1083,531.4)" id="406" ed:layout="leftmap" ed:parentid="402">
        <path stroke-linejoin="round" transform="translate(526.5,9.58)" stroke="#508ab2" id="407" d="M14.5,-13.9C-0.3,-13.9,1.7,13.9,-14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L512,23.5" fill="none"/>
        <rect height="18" width="97.1" y="3.8" fill="#ff0000" x="323.5"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="312" y="18.8" lengthAdjust="spacing" x="4">因为XML文档本身标记知识文档本身的描述，</tspan>
            <tspan style="white-space:pre" textLength="96" lengthAdjust="spacing" x="316">需要经过解析</tspan>
            <tspan style="white-space:pre" textLength="96" lengthAdjust="spacing" x="412">才能达到用途</tspan>
        </text>
    </g>
    <g ed:width="904" ed:height="23.5" transform="translate(701,2553.4)" id="410" ed:layout="leftmap" ed:parentid="134">
        <path stroke-linejoin="round" transform="translate(918.5,1.53)" stroke="#508ab2" id="411" d="M14.5,-22C-2,-22,5.6,22,-14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L904,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="896" y="18.8" lengthAdjust="spacing" x="4">构建数据仓库不是把各种应用集中在一起，而是利用企业信息生成数据，以面向主体，集成的方式合理组织数据，解决数据分析</tspan>
        </text>
    </g>
    <g ed:width="223" ed:height="44" transform="translate(1534,4044.25)" id="412" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L219,0C221.2,0,223,1.8,223,4L223,40C223,42.2,221.2,44,219,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(285.75,-681.2)" stroke="#508ab2" id="413" d="M62.7,-669.7C61.4,155.5,11.5,703.2,-62.8,703.2" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="180" y="29.5" lengthAdjust="spacing" x="22">数据库应用系统设计</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1417,3764.7)" id="414" ed:layout="leftmap" ed:parentid="412">
        <path stroke-linejoin="round" transform="translate(102.5,162.53)" stroke="#508ab2" id="415" d="M14.5,139C-5.8,139,14.5,-139,-14.5,-139" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">1.概念设计</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1417,3845.2)" id="416" ed:layout="leftmap" ed:parentid="412">
        <path stroke-linejoin="round" transform="translate(102.5,122.28)" stroke="#508ab2" id="417" d="M14.5,98.8C-5.8,98.8,14.5,-98.8,-14.5,-98.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">2.逻辑设计</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1417,4022.3)" id="418" ed:layout="leftmap" ed:parentid="412">
        <path stroke-linejoin="round" transform="translate(102.5,33.73)" stroke="#508ab2" id="419" d="M14.5,10.2C0.5,10.2,-0.3,-10.2,-14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">3.物理设计</tspan>
        </text>
    </g>
    <g ed:width="616" ed:height="23.5" transform="translate(889,3732.5)" id="420" ed:layout="leftmap" ed:parentid="412">
        <path stroke-linejoin="round" transform="translate(630.5,178.63)" stroke="#508ab2" id="421" d="M14.5,155.1C-5.8,155.1,14.5,-155.1,-14.5,-155.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L616,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="608" y="18.8" lengthAdjust="spacing" x="4">每个步骤的设计活动按照数据组织与存储、数据访问与处理、应用设计等几个方面进行</tspan>
        </text>
    </g>
    <g ed:width="168" ed:height="23.5" transform="translate(1220,3764.7)" id="422" ed:layout="leftmap" ed:parentid="414">
        <path stroke-linejoin="round" transform="translate(182.5,23.5)" stroke="#508ab2" id="423" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L168,23.5" fill="none"/>
        <rect height="18" width="129.8" y="3.8" fill="#ff0000" x="37.3"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">采用</tspan>
            <tspan style="white-space:pre" textLength="128" lengthAdjust="spacing" x="36">自下而上的ER设计</tspan>
        </text>
    </g>
    <g ed:width="328" ed:height="23.5" transform="translate(1060,3925.7)" id="424" ed:layout="leftmap" ed:parentid="418">
        <path stroke-linejoin="round" transform="translate(342.5,71.8)" stroke="#508ab2" id="425" d="M14.5,48.3C-5.5,48.3,13.8,-48.3,-14.5,-48.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L328,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="320" y="18.8" lengthAdjust="spacing" x="4">将关系模式转换为具体DBMS平台支持的关系表</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(1140,3796.9)" id="426" ed:layout="leftmap" ed:parentid="416">
        <path stroke-linejoin="round" transform="translate(262.5,47.65)" stroke="#508ab2" id="427" d="M14.5,24.1C-2.4,24.1,6.6,-24.1,-14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">设计视图和关系模式的完整性约束</tspan>
        </text>
    </g>
    <g ed:width="103" ed:height="44" transform="translate(1654,2345.85)" id="438" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L99,0C101.2,0,103,1.8,103,4L103,40C103,42.2,101.2,44,99,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(165.75,168)" stroke="#508ab2" id="439" d="M62.1,112.5C56.1,-43.9,7.6,-146,-62.8,-146" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="60" y="29.5" lengthAdjust="spacing" x="22">数据库</tspan>
        </text>
    </g>
    <g ed:width="280" ed:height="23.5" transform="translate(1345,2291.7)" id="440" ed:layout="leftmap" ed:parentid="438">
        <path stroke-linejoin="round" transform="translate(294.5,49.83)" stroke="#508ab2" id="441" d="M14.5,26.3C-2.8,26.3,7.5,-26.3,-14.5,-26.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L280,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="272" y="18.8" lengthAdjust="spacing" x="4">主要用于提取数据中的潜在信息和知识</tspan>
        </text>
    </g>
    <g ed:width="120" ed:height="23.5" transform="translate(1505,2323.9)" id="442" ed:layout="leftmap" ed:parentid="438">
        <path stroke-linejoin="round" transform="translate(134.5,33.73)" stroke="#508ab2" id="443" d="M14.5,10.2C0.5,10.2,-0.3,-10.2,-14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L120,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="112" y="18.8" lengthAdjust="spacing" x="4">不做汇总和统计</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(2921,1265.85)" id="444" ed:layout="rightmap" ed:parentid="276">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="445" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">位于全局概念模式和分片模式之间</tspan>
        </text>
    </g>
    <g ed:width="328" ed:height="23.5" transform="translate(1237,4642.3)" id="446" ed:layout="leftmap" ed:parentid="297">
        <path stroke-linejoin="round" transform="translate(342.5,41.78)" stroke="#508ab2" id="447" d="M14.5,18.3C-1.2,18.3,3.8,-18.3,-14.5,-18.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L328,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="320" y="18.8" lengthAdjust="spacing" x="4">①数据操作响应时间，或数据访问响应时间；</tspan>
        </text>
    </g>
    <g ed:width="552" ed:height="23.5" transform="translate(1013,4674.5)" id="448" ed:layout="leftmap" ed:parentid="297">
        <path stroke-linejoin="round" transform="translate(566.5,25.68)" stroke="#508ab2" id="449" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L552,23.5" fill="none"/>
        <rect height="18" width="80.7" y="3.8" fill="#ff0000" x="413.4"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="400" y="18.8" lengthAdjust="spacing" x="4">②系统吞吐量，即指系统在单位时间内可以完成的数据库</tspan>
            <tspan style="white-space:pre" textLength="80" lengthAdjust="spacing" x="404">事务或查询</tspan>
            <tspan style="white-space:pre" textLength="64" lengthAdjust="spacing" x="484">的数量；</tspan>
        </text>
    </g>
    <g ed:width="216" ed:height="23.5" transform="translate(1349,4706.7)" id="450" ed:layout="leftmap" ed:parentid="297">
        <path stroke-linejoin="round" transform="translate(230.5,9.58)" stroke="#508ab2" id="451" d="M14.5,-13.9C-0.3,-13.9,1.7,13.9,-14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L216,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="208" y="18.8" lengthAdjust="spacing" x="4">③允许并发访问最大用户数；</tspan>
        </text>
    </g>
    <g ed:width="264" ed:height="23.5" transform="translate(1301,4738.9)" id="452" ed:layout="leftmap" ed:parentid="297">
        <path stroke-linejoin="round" transform="translate(278.5,-6.52)" stroke="#508ab2" id="453" d="M14.5,-30C-3.4,-30,8.9,30,-14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L264,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="256" y="18.8" lengthAdjust="spacing" x="4">④每TPS（Price per TPS）代价值。</tspan>
        </text>
    </g>
    <g ed:width="80" ed:height="23.5" transform="translate(1385,3309.8)" id="454" ed:layout="leftmap" ed:parentid="356">
        <path stroke-linejoin="round" transform="translate(94.5,20.23)" stroke="#508ab2" id="455" d="M14.5,-3.3C2.1,-3.3,-4,3.3,-14.5,3.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L80,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="72" y="18.8" lengthAdjust="spacing" x="4">IDEF0方法</tspan>
        </text>
    </g>
    <g ed:width="64" ed:height="23.5" transform="translate(1401,3583.5)" id="456" ed:layout="leftmap" ed:parentid="356">
        <path stroke-linejoin="round" transform="translate(78.5,-116.62)" stroke="#508ab2" id="457" d="M14.5,-140.1C-5.8,-140.1,14.5,140.1,-14.5,140.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L64,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="56" y="18.8" lengthAdjust="spacing" x="4">UML方法</tspan>
        </text>
    </g>
    <g ed:width="264" ed:height="23.5" transform="translate(1007,3094.8)" id="460" ed:layout="leftmap" ed:parentid="366">
        <path stroke-linejoin="round" transform="translate(278.5,7.4)" stroke="#508ab2" id="461" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L264,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="256" y="18.8" lengthAdjust="spacing" x="4">自顶向下逐步细化的结构化分析方法</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(2120,2303.65)" id="462" ed:layout="rightmap" ed:parentid="299">
        <path stroke-linejoin="round" transform="translate(-14.5,33.72)" stroke="#508ab2" id="463" d="M-14.5,10.2C-0.5,10.2,0.3,-10.2,14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">适合索引使用的条件</tspan>
        </text>
    </g>
    <g ed:width="344" ed:height="23.5" transform="translate(2301,2262.45)" id="464" ed:layout="rightmap" ed:parentid="462">
        <path stroke-linejoin="round" transform="translate(-14.5,44.1)" stroke="#508ab2" id="465" d="M-14.5,20.6C1.7,20.6,-4.9,-20.6,14.5,-20.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L344,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="336" y="18.8" lengthAdjust="spacing" x="4">①在经常需要搜索的列上，可以加快搜索的速度</tspan>
        </text>
    </g>
    <g ed:width="664" ed:height="41.5" transform="translate(2301,2294.65)" id="468" ed:layout="rightmap" ed:parentid="462">
        <path stroke-linejoin="round" transform="translate(-14.5,37)" stroke="#508ab2" id="469" d="M-14.5,-4.5C-1.8,-4.5,3.3,4.5,14.5,4.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,41.5L664,41.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">②在经常使用连接的列上（这些列主要是一些外键）可以加快连接的速度，</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">在经常需要根据范围进行搜索的列上创建索引，因为索引已经排序，其指定的范围是连续的；</tspan>
        </text>
    </g>
    <g ed:width="496" ed:height="23.5" transform="translate(2301,2344.85)" id="470" ed:layout="rightmap" ed:parentid="462">
        <path stroke-linejoin="round" transform="translate(-14.5,2.9)" stroke="#508ab2" id="471" d="M-14.5,-20.6C1.7,-20.6,-4.9,20.6,14.5,20.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L496,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="488" y="18.8" lengthAdjust="spacing" x="4">③在经常使用WHERE子句中的列上面创建索引，加快条件的判断速度。</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(2120,2409.25)" id="474" ed:layout="rightmap" ed:parentid="299">
        <path stroke-linejoin="round" transform="translate(-14.5,-19.08)" stroke="#508ab2" id="475" d="M-14.5,-42.6C5.1,-42.6,-12.8,42.6,14.5,42.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">不适合索引的条件</tspan>
        </text>
    </g>
    <g ed:width="424" ed:height="23.5" transform="translate(2285,2377.05)" id="476" ed:layout="rightmap" ed:parentid="474">
        <path stroke-linejoin="round" transform="translate(-14.5,39.6)" stroke="#508ab2" id="477" d="M-14.5,16.1C0.8,16.1,-2.8,-16.1,14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L424,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="416" y="18.8" lengthAdjust="spacing" x="4">①对于那些在查询中很少使用或者参考的列不应该创建索引</tspan>
        </text>
    </g>
    <g ed:width="360" ed:height="23.5" transform="translate(2285,2409.25)" id="478" ed:layout="rightmap" ed:parentid="474">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="479" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L360,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="352" y="18.8" lengthAdjust="spacing" x="4">②对于那些只有很少数据值的列也不应该创建索引</tspan>
        </text>
    </g>
    <g ed:width="272" ed:height="23.5" transform="translate(2285,2441.45)" id="480" ed:layout="rightmap" ed:parentid="474">
        <path stroke-linejoin="round" transform="translate(-14.5,7.4)" stroke="#508ab2" id="481" d="M-14.5,-16.1C0.8,-16.1,-2.8,16.1,14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L272,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="264" y="18.8" lengthAdjust="spacing" x="4">3经常进行更新的列不适宜创建索引。</tspan>
        </text>
    </g>
    <g ed:width="83" ed:height="44" transform="translate(2008,3361.2)" id="482" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L79,0C81.2,0,83,1.8,83,4L83,40C83,42.2,81.2,44,79,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-339.67)" stroke="#508ab2" id="483" d="M-62.6,-328.2C-60.1,87.2,-10.6,361.7,62.8,361.7" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="40" y="29.5" lengthAdjust="spacing" x="22">代码</tspan>
        </text>
    </g>
    <g ed:width="320" ed:height="23.5" transform="translate(2120,3194.35)" id="484" ed:layout="rightmap" ed:parentid="482">
        <path stroke-linejoin="round" transform="translate(-14.5,106.18)" stroke="#508ab2" id="485" d="M-14.5,82.7C5.8,82.7,-14.5,-82.7,14.5,-82.7" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L320,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="312" y="18.8" lengthAdjust="spacing" x="4">让用户u1在数据库DB1中具有查询T1表的权限</tspan>
        </text>
    </g>
    <g ed:width="240" ed:height="23.5" transform="translate(2469,3194.35)" id="486" ed:layout="rightmap" ed:parentid="484">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="487" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L240,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="232" y="18.8" lengthAdjust="spacing" x="4">GRANT SELECT ON DB1(T1) TO u1</tspan>
        </text>
    </g>
    <g ed:width="696" ed:height="23.5" transform="translate(929,861.6)" id="488" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(710.5,283.52)" stroke="#508ab2" id="489" d="M14.5,260C-5.8,260,14.5,-260,-14.5,-260" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L696,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="688" y="18.8" lengthAdjust="spacing" x="4">数据库物理设计不包括文件和数据库的具体实现细节（创建文件，创建数据库以及如何加载数据）</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(1569,909.9)" id="507" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(70.5,259.37)" stroke="#508ab2" id="508" d="M14.5,235.9C-5.8,235.9,14.5,-235.9,-14.5,-235.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">元数据</tspan>
        </text>
    </g>
    <g ed:width="280" ed:height="23.5" transform="translate(1260,893.8)" id="509" ed:layout="leftmap" ed:parentid="507">
        <path stroke-linejoin="round" transform="translate(294.5,31.55)" stroke="#508ab2" id="510" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L280,23.5" fill="none"/>
        <text class="st3">
            <tspan style="white-space:pre" textLength="272" y="18.8" lengthAdjust="spacing" x="4">如数据库中数据字典就是一种元数据</tspan>
        </text>
    </g>
    <g ed:width="664" ed:height="23.5" transform="translate(876,926)" id="511" ed:layout="leftmap" ed:parentid="507">
        <path stroke-linejoin="round" transform="translate(678.5,15.45)" stroke="#508ab2" id="512" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L664,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="656" y="18.8" lengthAdjust="spacing" x="4">DBMS数据字典、数据库结构证明文档、前端应用程序表中数据库的定义及说明文档都是元数据</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1316,3861.3)" id="515" ed:layout="leftmap" ed:parentid="416">
        <path stroke-linejoin="round" transform="translate(86.5,15.45)" stroke="#508ab2" id="516" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">工作内容</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1135,3829.1)" id="517" ed:layout="leftmap" ed:parentid="515">
        <path stroke-linejoin="round" transform="translate(166.5,39.6)" stroke="#508ab2" id="518" d="M14.5,16.1C-0.8,16.1,2.8,-16.1,-14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">数据库逻辑结构设计</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1135,3861.3)" id="519" ed:layout="leftmap" ed:parentid="515">
        <path stroke-linejoin="round" transform="translate(166.5,23.5)" stroke="#508ab2" id="520" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">数据库事务概要设计</tspan>
        </text>
    </g>
    <g ed:width="168" ed:height="23.5" transform="translate(1119,3893.5)" id="521" ed:layout="leftmap" ed:parentid="515">
        <path stroke-linejoin="round" transform="translate(182.5,7.4)" stroke="#508ab2" id="522" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L168,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="160" y="18.8" lengthAdjust="spacing" x="4">SAD	32ezdw-+	</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1316,4038.4)" id="523" ed:layout="leftmap" ed:parentid="418">
        <path stroke-linejoin="round" transform="translate(86.5,15.45)" stroke="#508ab2" id="524" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">工作内容</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1135,3957.9)" id="525" ed:layout="leftmap" ed:parentid="523">
        <path stroke-linejoin="round" transform="translate(166.5,63.75)" stroke="#508ab2" id="526" d="M14.5,40.3C-4.8,40.3,12.2,-40.3,-14.5,-40.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">数据库逻辑模式调整</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1135,3990.1)" id="527" ed:layout="leftmap" ed:parentid="523">
        <path stroke-linejoin="round" transform="translate(166.5,47.65)" stroke="#508ab2" id="528" d="M14.5,24.1C-2.4,24.1,6.6,-24.1,-14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">文件组织与存取设计</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1183,4022.3)" id="529" ed:layout="leftmap" ed:parentid="523">
        <path stroke-linejoin="round" transform="translate(118.5,31.55)" stroke="#508ab2" id="530" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">数据分布设计</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1183,4054.5)" id="531" ed:layout="leftmap" ed:parentid="523">
        <path stroke-linejoin="round" transform="translate(118.5,15.45)" stroke="#508ab2" id="532" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">安全模式设计</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1183,4086.7)" id="533" ed:layout="leftmap" ed:parentid="523">
        <path stroke-linejoin="round" transform="translate(118.5,-0.65)" stroke="#508ab2" id="534" d="M14.5,-24.1C-2.4,-24.1,6.6,24.1,-14.5,24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">确定系统配置</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1183,4118.9)" id="535" ed:layout="leftmap" ed:parentid="523">
        <path stroke-linejoin="round" transform="translate(118.5,-16.75)" stroke="#508ab2" id="536" d="M14.5,-40.3C-4.8,-40.3,12.2,40.3,-14.5,40.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">物理模式评估</tspan>
        </text>
    </g>
    <g ed:width="173" ed:height="44" transform="translate(2008,3751.7)" id="537" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L169,0C171.2,0,173,1.8,173,4L173,40C173,42.2,171.2,44,169,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-534.92)" stroke="#508ab2" id="538" d="M-62.7,-523.4C-61.1,126.2,-11.3,556.9,62.8,556.9" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="130" y="29.5" lengthAdjust="spacing" x="22">SQL中的操作符</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(2210,3617.05)" id="539" ed:layout="rightmap" ed:parentid="537">
        <path stroke-linejoin="round" transform="translate(-14.5,90.08)" stroke="#508ab2" id="540" d="M-14.5,66.6C5.8,66.6,-14.5,-66.6,14.5,-66.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">①IN</tspan>
        </text>
    </g>
    <g ed:width="632" ed:height="23.5" transform="translate(2279,3617.05)" id="541" ed:layout="rightmap" ed:parentid="539">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="542" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L632,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="624" y="18.8" lengthAdjust="spacing" x="4">确定给定的值是否与子查询或列表中的值相匹配，选择与列表中的任意一个值匹配的行；</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(2210,3649.25)" id="543" ed:layout="rightmap" ed:parentid="537">
        <path stroke-linejoin="round" transform="translate(-14.5,73.98)" stroke="#508ab2" id="544" d="M-14.5,50.5C5.6,50.5,-14.1,-50.5,14.5,-50.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">②EXCEPT</tspan>
        </text>
    </g>
    <g ed:width="424" ed:height="23.5" transform="translate(2311,3649.25)" id="545" ed:layout="rightmap" ed:parentid="543">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="546" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L424,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="416" y="18.8" lengthAdjust="spacing" x="4">指在第一个集合中存在，但是不存在于第二个集合中的数据</tspan>
        </text>
    </g>
    <g ed:width="96" ed:height="23.5" transform="translate(2210,3681.45)" id="547" ed:layout="rightmap" ed:parentid="537">
        <path stroke-linejoin="round" transform="translate(-14.5,57.88)" stroke="#508ab2" id="548" d="M-14.5,34.4C4.1,34.4,-10.5,-34.4,14.5,-34.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L96,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="88" y="18.8" lengthAdjust="spacing" x="4">③INTERSECT</tspan>
        </text>
    </g>
    <g ed:width="232" ed:height="23.5" transform="translate(2335,3681.45)" id="549" ed:layout="rightmap" ed:parentid="547">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="550" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L232,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="224" y="18.8" lengthAdjust="spacing" x="4">是指在两个集合中都存在的数据</tspan>
        </text>
    </g>
    <g ed:width="64" ed:height="23.5" transform="translate(2210,3745.85)" id="553" ed:layout="rightmap" ed:parentid="537">
        <path stroke-linejoin="round" transform="translate(-14.5,25.68)" stroke="#508ab2" id="554" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L64,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="56" y="18.8" lengthAdjust="spacing" x="4">④UNION</tspan>
        </text>
    </g>
    <g ed:width="352" ed:height="23.5" transform="translate(2303,3713.65)" id="555" ed:layout="rightmap" ed:parentid="553">
        <path stroke-linejoin="round" transform="translate(-14.5,39.6)" stroke="#508ab2" id="556" d="M-14.5,16.1C0.8,16.1,-2.8,-16.1,14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L352,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="344" y="18.8" lengthAdjust="spacing" x="4">操作符用于合并两个或多个SELECT 语句的结果集</tspan>
        </text>
    </g>
    <g ed:width="424" ed:height="23.5" transform="translate(2303,3745.85)" id="557" ed:layout="rightmap" ed:parentid="553">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="558" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L424,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="416" y="18.8" lengthAdjust="spacing" x="4">请注意，UNION内部的SELECT 语句必须拥有相同数量的列。</tspan>
        </text>
    </g>
    <g ed:width="552" ed:height="23.5" transform="translate(2303,3778.05)" id="559" ed:layout="rightmap" ed:parentid="553">
        <path stroke-linejoin="round" transform="translate(-14.5,7.4)" stroke="#508ab2" id="560" d="M-14.5,-16.1C0.8,-16.1,-2.8,16.1,14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L552,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="544" y="18.8" lengthAdjust="spacing" x="4">列也必须拥有相似的数据类型。同时，每条SELECT语句中的列的顺序必须相同</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1433,4263.8)" id="561" ed:layout="leftmap" ed:parentid="412">
        <path stroke-linejoin="round" transform="translate(86.5,-87.02)" stroke="#508ab2" id="562" d="M14.5,-110.5C-5.8,-110.5,14.5,110.5,-14.5,110.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">四个层次</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1332,4151.1)" id="563" ed:layout="leftmap" ed:parentid="561">
        <path stroke-linejoin="round" transform="translate(86.5,79.85)" stroke="#508ab2" id="564" d="M14.5,56.4C-5.8,56.4,14.5,-56.4,-14.5,-56.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">①表示层</tspan>
        </text>
    </g>
    <g ed:width="456" ed:height="23.5" transform="translate(847,4151.1)" id="565" ed:layout="leftmap" ed:parentid="563">
        <path stroke-linejoin="round" transform="translate(470.5,23.5)" stroke="#508ab2" id="566" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L456,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="448" y="18.8" lengthAdjust="spacing" x="4">位于最外层，离用户最近，用于显示数据和接受用户输入的数据</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1300,4215.5)" id="567" ed:layout="leftmap" ed:parentid="561">
        <path stroke-linejoin="round" transform="translate(118.5,47.65)" stroke="#508ab2" id="568" d="M14.5,24.1C-2.4,24.1,6.6,-24.1,-14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">②业务逻辑层</tspan>
        </text>
    </g>
    <g ed:width="840" ed:height="23.5" transform="translate(431,4183.3)" id="569" ed:layout="leftmap" ed:parentid="567">
        <path stroke-linejoin="round" transform="translate(854.5,39.6)" stroke="#508ab2" id="570" d="M14.5,16.1C-0.8,16.1,2.8,-16.1,-14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L840,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="832" y="18.8" lengthAdjust="spacing" x="4">表示层和数据访问层之间通信的桥梁，主要负责数据的传递和处理，例如数据有效性的检验、业务逻辑描述相关功能。</tspan>
        </text>
    </g>
    <g ed:width="744" ed:height="23.5" transform="translate(527,4215.5)" id="571" ed:layout="leftmap" ed:parentid="567">
        <path stroke-linejoin="round" transform="translate(758.5,23.5)" stroke="#508ab2" id="572" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L744,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="736" y="18.8" lengthAdjust="spacing" x="4">业务逻辑层概要设计包括：结构、行为、数据接口、故障处理、安全设计、系统维护与保障等方面的内容</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1300,4296)" id="573" ed:layout="leftmap" ed:parentid="561">
        <path stroke-linejoin="round" transform="translate(118.5,7.4)" stroke="#508ab2" id="574" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">③数据访问层</tspan>
        </text>
    </g>
    <g ed:width="232" ed:height="23.5" transform="translate(1039,4279.9)" id="575" ed:layout="leftmap" ed:parentid="573">
        <path stroke-linejoin="round" transform="translate(246.5,31.55)" stroke="#508ab2" id="576" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L232,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="224" y="18.8" lengthAdjust="spacing" x="4">主要实现对数据的保存和读取操</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1300,4360.4)" id="577" ed:layout="leftmap" ed:parentid="561">
        <path stroke-linejoin="round" transform="translate(118.5,-24.8)" stroke="#508ab2" id="578" d="M14.5,-48.3C-5.5,-48.3,13.8,48.3,-14.5,48.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">④数据持久层</tspan>
        </text>
    </g>
    <g ed:width="728" ed:height="23.5" transform="translate(543,4247.7)" id="583" ed:layout="leftmap" ed:parentid="567">
        <path stroke-linejoin="round" transform="translate(742.5,7.4)" stroke="#508ab2" id="584" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L728,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="720" y="18.8" lengthAdjust="spacing" x="4">业务逻辑层的主要任务是梳理DBAS的各项业务活动，将其表示为各种系统构件（如类、模块、组件等）</tspan>
        </text>
    </g>
    <g ed:width="312" ed:height="23.5" transform="translate(2120,3226.55)" id="587" ed:layout="rightmap" ed:parentid="482">
        <path stroke-linejoin="round" transform="translate(-14.5,90.08)" stroke="#508ab2" id="588" d="M-14.5,66.6C5.8,66.6,-14.5,-66.6,14.5,-66.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L312,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="304" y="18.8" lengthAdjust="spacing" x="4">包含INTO子句的SELECT语句的语法格式为：</tspan>
        </text>
    </g>
    <g ed:width="336" ed:height="23.5" transform="translate(2461,3226.55)" id="589" ed:layout="rightmap" ed:parentid="587">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="590" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L336,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="328" y="18.8" lengthAdjust="spacing" x="4">SELECT 查询列表序列INTO&lt;新表名>FROM数据源</tspan>
        </text>
    </g>
    <g ed:width="168" ed:height="23.5" transform="translate(1457,1006.5)" id="591" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(182.5,211.07)" stroke="#508ab2" id="592" d="M14.5,187.6C-5.8,187.6,14.5,-187.6,-14.5,-187.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L168,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="160" y="18.8" lengthAdjust="spacing" x="4">数据库系统实施的活动</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1340,958.2)" id="593" ed:layout="leftmap" ed:parentid="591">
        <path stroke-linejoin="round" transform="translate(102.5,47.65)" stroke="#508ab2" id="594" d="M14.5,24.1C-2.4,24.1,6.6,-24.1,-14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">创建数据库</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1356,990.4)" id="595" ed:layout="leftmap" ed:parentid="591">
        <path stroke-linejoin="round" transform="translate(86.5,31.55)" stroke="#508ab2" id="596" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">装载数据</tspan>
        </text>
    </g>
    <g ed:width="168" ed:height="23.5" transform="translate(1260,1022.6)" id="597" ed:layout="leftmap" ed:parentid="591">
        <path stroke-linejoin="round" transform="translate(182.5,15.45)" stroke="#508ab2" id="598" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L168,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="160" y="18.8" lengthAdjust="spacing" x="4">应用程序的编码和调试</tspan>
        </text>
    </g>
    <g ed:width="120" ed:height="23.5" transform="translate(1308,1054.8)" id="599" ed:layout="leftmap" ed:parentid="591">
        <path stroke-linejoin="round" transform="translate(134.5,-0.65)" stroke="#508ab2" id="600" d="M14.5,-24.1C-2.4,-24.1,6.6,24.1,-14.5,24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L120,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="112" y="18.8" lengthAdjust="spacing" x="4">数据库的试运营</tspan>
        </text>
    </g>
    <g ed:width="73" ed:height="44" transform="translate(1684,670.15)" id="601" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L69,0C71.2,0,73,1.8,73,4L73,40C73,42.2,71.2,44,69,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(135.75,1005.85)" stroke="#508ab2" id="602" d="M62.7,950.4C61.8,-211.6,11.8,-983.9,-62.8,-983.9" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="30" y="29.5" lengthAdjust="spacing" x="22">ODS</tspan>
        </text>
    </g>
    <g ed:width="656" ed:height="23.5" transform="translate(999,599.9)" id="603" ed:layout="leftmap" ed:parentid="601">
        <path stroke-linejoin="round" transform="translate(670.5,57.88)" stroke="#508ab2" id="604" d="M14.5,34.4C-4.1,34.4,10.5,-34.4,-14.5,-34.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L656,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="648" y="18.8" lengthAdjust="spacing" x="4">是数据仓库体系结构中的一个可选部分，ODS具备数据令库的部分特征和OLTP系统的部分特征</tspan>
        </text>
    </g>
    <g ed:width="488" ed:height="23.5" transform="translate(1167,632.1)" id="605" ed:layout="leftmap" ed:parentid="601">
        <path stroke-linejoin="round" transform="translate(502.5,41.77)" stroke="#508ab2" id="606" d="M14.5,18.3C-1.2,18.3,3.8,-18.3,-14.5,-18.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L488,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="480" y="18.8" lengthAdjust="spacing" x="4">它是“面向主题的、集成的、当前或接近当前的、不断变化的“数据</tspan>
        </text>
    </g>
    <g ed:width="240" ed:height="23.5" transform="translate(1415,664.3)" id="607" ed:layout="leftmap" ed:parentid="601">
        <path stroke-linejoin="round" transform="translate(254.5,25.67)" stroke="#508ab2" id="608" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L240,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="232" y="18.8" lengthAdjust="spacing" x="4">第一类ODS数据更新频率是秒级，</tspan>
        </text>
    </g>
    <g ed:width="272" ed:height="23.5" transform="translate(1383,696.5)" id="609" ed:layout="leftmap" ed:parentid="601">
        <path stroke-linejoin="round" transform="translate(286.5,9.57)" stroke="#508ab2" id="610" d="M14.5,-13.9C-0.3,-13.9,1.7,13.9,-14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L272,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="264" y="18.8" lengthAdjust="spacing" x="4">第二类ODS的数据更新频率是小时级，</tspan>
        </text>
    </g>
    <g ed:width="528" ed:height="23.5" transform="translate(1127,728.7)" id="611" ed:layout="leftmap" ed:parentid="601">
        <path stroke-linejoin="round" transform="translate(542.5,-6.53)" stroke="#508ab2" id="612" d="M14.5,-30C-3.4,-30,8.9,30,-14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L528,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="520" y="18.8" lengthAdjust="spacing" x="4">第三类ODS的数据更新频率是天级，上述三类是根据数据更新的速度划分的</tspan>
        </text>
    </g>
    <g ed:width="392" ed:height="23.5" transform="translate(1263,760.9)" id="613" ed:layout="leftmap" ed:parentid="601">
        <path stroke-linejoin="round" transform="translate(406.5,-22.63)" stroke="#508ab2" id="614" d="M14.5,-46.1C-5.4,-46.1,13.5,46.1,-14.5,46.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L392,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="384" y="18.8" lengthAdjust="spacing" x="4">ODSIV：第四类ODS是根据数据来源方向和类型划分的。</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(2385,2815.85)" id="615" ed:layout="rightmap" ed:parentid="324">
        <path stroke-linejoin="round" transform="translate(-14.5,7.4)" stroke="#508ab2" id="616" d="M-14.5,-16.1C0.8,-16.1,-2.8,16.1,14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">方法</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(2454,2799.75)" id="617" ed:layout="rightmap" ed:parentid="615">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="618" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">创建触发器</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(2454,2831.95)" id="619" ed:layout="rightmap" ed:parentid="615">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="620" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">定义事务隔离性级别</tspan>
        </text>
    </g>
    <g ed:width="184" ed:height="23.5" transform="translate(1441,1087)" id="621" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(198.5,170.82)" stroke="#508ab2" id="622" d="M14.5,147.3C-5.8,147.3,14.5,-147.3,-14.5,-147.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L184,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="176" y="18.8" lengthAdjust="spacing" x="4">数字签名用于数据防篡改</tspan>
        </text>
    </g>
    <g ed:width="216" ed:height="23.5" transform="translate(1409,1119.2)" id="623" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(230.5,154.72)" stroke="#508ab2" id="624" d="M14.5,131.2C-5.8,131.2,14.5,-131.2,-14.5,-131.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L216,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="208" y="18.8" lengthAdjust="spacing" x="4">定义主码是用于实体的完整性</tspan>
        </text>
    </g>
    <g ed:width="113" ed:height="44" transform="translate(1644,2749.45)" id="627" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L109,0C111.2,0,113,1.8,113,4L113,40C113,42.2,111.2,44,109,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(175.75,-33.8)" stroke="#508ab2" id="628" d="M58.1,-22.3C44.1,25.6,-0.8,55.8,-62.8,55.8" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="70" y="29.5" lengthAdjust="spacing" x="22">UML模型</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1543,2621.9)" id="629" ed:layout="leftmap" ed:parentid="627">
        <path stroke-linejoin="round" transform="translate(86.5,86.53)" stroke="#508ab2" id="630" d="M14.5,63C-5.8,63,14.5,-63,-14.5,-63" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">协作图主</tspan>
        </text>
    </g>
    <g ed:width="680" ed:height="23.5" transform="translate(834,2621.9)" id="631" ed:layout="leftmap" ed:parentid="629">
        <path stroke-linejoin="round" transform="translate(694.5,23.5)" stroke="#508ab2" id="632" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L680,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="672" y="18.8" lengthAdjust="spacing" x="4">用于描述对象在空间中如何交互，即除了动态交互，它也直接描述了对象如何链接在一起的情形</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(1559,2670.2)" id="633" ed:layout="leftmap" ed:parentid="627">
        <path stroke-linejoin="round" transform="translate(70.5,62.38)" stroke="#508ab2" id="634" d="M14.5,38.9C-4.7,38.9,11.8,-38.9,-14.5,-38.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">状态图</tspan>
        </text>
    </g>
    <g ed:width="952" ed:height="23.5" transform="translate(578,2654.1)" id="635" ed:layout="leftmap" ed:parentid="633">
        <path stroke-linejoin="round" transform="translate(966.5,31.55)" stroke="#508ab2" id="636" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L952,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="944" y="18.8" lengthAdjust="spacing" x="4">用于描述一个对象在其生存期间的动态行为，表现为一个对象所经历的状态序列，引起状态转移的事件，以及因状态转移而伴随的动作</tspan>
        </text>
    </g>
    <g ed:width="728" ed:height="23.5" transform="translate(802,2686.3)" id="637" ed:layout="leftmap" ed:parentid="633">
        <path stroke-linejoin="round" transform="translate(742.5,15.45)" stroke="#508ab2" id="638" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L728,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="720" y="18.8" lengthAdjust="spacing" x="4">一般可以用状态机对一个对象的生命周期建模，状态图用于显示状态机，重点在与描述状态图的控制流</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(1559,2775.8)" id="639" ed:layout="leftmap" ed:parentid="627">
        <path stroke-linejoin="round" transform="translate(70.5,9.58)" stroke="#508ab2" id="640" d="M14.5,-13.9C-0.3,-13.9,1.7,13.9,-14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">顺序图</tspan>
        </text>
    </g>
    <g ed:width="712" ed:height="23.5" transform="translate(818,2718.5)" id="641" ed:layout="leftmap" ed:parentid="639">
        <path stroke-linejoin="round" transform="translate(726.5,52.15)" stroke="#508ab2" id="642" d="M14.5,28.6C-3.2,28.6,8.4,-28.6,-14.5,-28.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L712,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="704" y="18.8" lengthAdjust="spacing" x="4">用于描述指定的一组对象是如何交互的，它着眼于消息队列，也就是在消息间如何发送和接收信息。</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(1559,2881.4)" id="643" ed:layout="leftmap" ed:parentid="627">
        <path stroke-linejoin="round" transform="translate(70.5,-43.22)" stroke="#508ab2" id="644" d="M14.5,-66.7C-5.8,-66.7,14.5,66.7,-14.5,66.7" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">部署图</tspan>
        </text>
    </g>
    <g ed:width="584" ed:height="23.5" transform="translate(946,2865.3)" id="645" ed:layout="leftmap" ed:parentid="643">
        <path stroke-linejoin="round" transform="translate(598.5,31.55)" stroke="#508ab2" id="646" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L584,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="576" y="18.8" lengthAdjust="spacing" x="4">描述的是系统运行时的结构，展示了硬件的配置及其软件如何部署到网络结构中。</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(1026,2897.5)" id="647" ed:layout="leftmap" ed:parentid="643">
        <path stroke-linejoin="round" transform="translate(518.5,15.45)" stroke="#508ab2" id="648" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">一个系统模型只有一个部署图，部署图通常用来帮助理解分布式系统。</tspan>
        </text>
    </g>
    <g ed:width="584" ed:height="23.5" transform="translate(687,4344.3)" id="649" ed:layout="leftmap" ed:parentid="577">
        <path stroke-linejoin="round" transform="translate(598.5,31.55)" stroke="#508ab2" id="650" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L584,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="576" y="18.8" lengthAdjust="spacing" x="4">以程序为媒介把表现层或服务层的数据持久化，他位于物理层和数据访问层之间的</tspan>
        </text>
    </g>
    <g ed:width="163" ed:height="44" transform="translate(2008,4063.6)" id="651" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,40C163,42.2,161.2,44,159,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-690.87)" stroke="#508ab2" id="652" d="M-62.7,-679.4C-61.4,157.4,-11.6,712.9,62.8,712.9" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="120" y="29.5" lengthAdjust="spacing" x="22">需求分析阶段</tspan>
        </text>
    </g>
    <g ed:width="584" ed:height="23.5" transform="translate(2365,3975.35)" id="653" ed:layout="rightmap" ed:parentid="657">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="654" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L584,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="576" y="18.8" lengthAdjust="spacing" x="4">从对数据组织与存储的设计角度，辨识应用领域所管理的各类数据项和数据结构，</tspan>
        </text>
    </g>
    <g ed:width="520" ed:height="23.5" transform="translate(2365,4007.55)" id="655" ed:layout="rightmap" ed:parentid="657">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="656" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L520,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="512" y="18.8" lengthAdjust="spacing" x="4">与数据处理需求分析结果一起，组成数据字典，形成"数据规范说明书"。</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(2200,3991.45)" id="657" ed:layout="rightmap" ed:parentid="651">
        <path stroke-linejoin="round" transform="translate(-14.5,58.83)" stroke="#508ab2" id="658" d="M-14.5,35.3C4.2,35.3,-10.8,-35.3,14.5,-35.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">数据处理需求分析</tspan>
        </text>
    </g>
    <g ed:width="120" ed:height="23.5" transform="translate(2200,4055.85)" id="659" ed:layout="rightmap" ed:parentid="651">
        <path stroke-linejoin="round" transform="translate(-14.5,26.63)" stroke="#508ab2" id="660" d="M-14.5,3.1C-2.2,3.1,4.1,-3.1,14.5,-3.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L120,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="112" y="18.8" lengthAdjust="spacing" x="4">②功能需求分析</tspan>
        </text>
    </g>
    <g ed:width="968" ed:height="23.5" transform="translate(2349,4039.75)" id="661" ed:layout="rightmap" ed:parentid="659">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="662" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L968,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="960" y="18.8" lengthAdjust="spacing" x="4">功能需求分析主要针对DBAS应具有的功能进行分析，是DBAS需求分析的核心环节，总体上可分为数据处理需求分析与业务规则需求分析。</tspan>
        </text>
    </g>
    <g ed:width="112" ed:height="23.5" transform="translate(2200,4104.15)" id="665" ed:layout="rightmap" ed:parentid="651">
        <path stroke-linejoin="round" transform="translate(-14.5,2.47)" stroke="#508ab2" id="666" d="M-14.5,-21C1.8,-21,-5.1,21,14.5,21" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L112,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="104" y="18.8" lengthAdjust="spacing" x="4">3性能需求分析</tspan>
        </text>
    </g>
    <g ed:width="520" ed:height="23.5" transform="translate(2341,4104.15)" id="667" ed:layout="rightmap" ed:parentid="665">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="668" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L520,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="512" y="18.8" lengthAdjust="spacing" x="4">性能需求则描述了系统应当做到什么程度，分析DBAS应具有的性能指标。</tspan>
        </text>
    </g>
    <g ed:width="760" ed:height="59.5" transform="translate(2200,4136.35)" id="669" ed:layout="rightmap" ed:parentid="651">
        <path stroke-linejoin="round" transform="translate(-14.5,4.38)" stroke="#508ab2" id="670" d="M-14.5,-55.1C5.8,-55.1,-14.4,55.1,14.5,55.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,59.5L760,59.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">④其他需求分析包括：存储需求、安全性需求等。</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">	a.存储需求分析：存储需求分析是指估计DBAS系统需要的数掘存储量，如DB所存储的数扼总量。</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">	b.安全需求分析：主要用于数据库安全设计，避免被非法使用和攻击。</tspan>
        </text>
    </g>
    <g ed:width="632" ed:height="23.5" transform="translate(2349,4071.95)" id="671" ed:layout="rightmap" ed:parentid="659">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="672" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L632,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="624" y="18.8" lengthAdjust="spacing" x="4">数据处理需求分析从数据访问和处理的角度，明确对各数据项所需要进行的数据访问操作</tspan>
        </text>
    </g>
    <g ed:width="203" ed:height="44" transform="translate(1554,4499.15)" id="673" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L199,0C201.2,0,203,1.8,203,4L203,40C203,42.2,201.2,44,199,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(265.75,-908.65)" stroke="#508ab2" id="674" d="M62.7,-897.1C61.7,201,11.8,930.6,-62.8,930.6" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="160" y="29.5" lengthAdjust="spacing" x="22">减少死锁发生数量</tspan>
        </text>
    </g>
    <g ed:width="592" ed:height="23.5" transform="translate(933,4445)" id="675" ed:layout="leftmap" ed:parentid="673">
        <path stroke-linejoin="round" transform="translate(606.5,49.83)" stroke="#508ab2" id="676" d="M14.5,26.3C-2.8,26.3,7.5,-26.3,-14.5,-26.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L592,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="584" y="18.8" lengthAdjust="spacing" x="4">1各个事务应顺序访问共享资源，将复杂的、大的事务分解成多个简单、小的事务；</tspan>
        </text>
    </g>
    <g ed:width="176" ed:height="23.5" transform="translate(1349,4477.2)" id="677" ed:layout="leftmap" ed:parentid="673">
        <path stroke-linejoin="round" transform="translate(190.5,33.73)" stroke="#508ab2" id="678" d="M14.5,10.2C0.5,10.2,-0.3,-10.2,-14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L176,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="168" y="18.8" lengthAdjust="spacing" x="4">2按同一顺序访问对象；</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1373,4509.4)" id="681" ed:layout="leftmap" ed:parentid="673">
        <path stroke-linejoin="round" transform="translate(166.5,17.63)" stroke="#508ab2" id="682" d="M14.5,-5.9C1.5,-5.9,-2.6,5.9,-14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">③事务隔离性级别；</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(1389,4541.6)" id="683" ed:layout="leftmap" ed:parentid="673">
        <path stroke-linejoin="round" transform="translate(150.5,1.52)" stroke="#508ab2" id="684" d="M14.5,-22C-2,-22,5.6,22,-14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">4.使用绑定连接；</tspan>
        </text>
    </g>
    <g ed:width="216" ed:height="23.5" transform="translate(1309,4573.8)" id="685" ed:layout="leftmap" ed:parentid="673">
        <path stroke-linejoin="round" transform="translate(230.5,-14.57)" stroke="#508ab2" id="686" d="M14.5,-38.1C-4.6,-38.1,11.6,38.1,-14.5,38.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L216,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="208" y="18.8" lengthAdjust="spacing" x="4">5.灵活使用显示加锁技术等。</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1537,2388.3)" id="687" ed:layout="leftmap" ed:parentid="438">
        <path stroke-linejoin="round" transform="translate(102.5,1.53)" stroke="#508ab2" id="688" d="M14.5,-22C-2,-22,5.6,22,-14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">数据库文件</tspan>
        </text>
    </g>
    <g ed:width="472" ed:height="23.5" transform="translate(1036,2356.1)" id="689" ed:layout="leftmap" ed:parentid="687">
        <path stroke-linejoin="round" transform="translate(486.5,39.6)" stroke="#508ab2" id="690" d="M14.5,16.1C-0.8,16.1,2.8,-16.1,-14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L472,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="464" y="18.8" lengthAdjust="spacing" x="4">每个数据库有且仅有一个主要数据文件，可以有多个次要数据文件</tspan>
        </text>
    </g>
    <g ed:width="464" ed:height="23.5" transform="translate(1044,2388.3)" id="691" ed:layout="leftmap" ed:parentid="687">
        <path stroke-linejoin="round" transform="translate(478.5,23.5)" stroke="#508ab2" id="692" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L464,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="456" y="18.8" lengthAdjust="spacing" x="4">每个数据库必须至少有-一个日志文件，也可以有多个日志文件。</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(1004,2420.5)" id="693" ed:layout="leftmap" ed:parentid="687">
        <path stroke-linejoin="round" transform="translate(518.5,7.4)" stroke="#508ab2" id="694" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">日志文件不能包含在文件组内。一个文件不可以是多个文件组的成员。</tspan>
        </text>
    </g>
    <g ed:width="183" ed:height="44" transform="translate(1574,363.15)" id="695" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L179,0C181.2,0,183,1.8,183,4L183,40C183,42.2,181.2,44,179,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(245.75,1159.35)" stroke="#508ab2" id="696" d="M62.7,1103.8C61.9,-242.3,11.9,-1137.3,-62.8,-1137.3" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="140" y="29.5" lengthAdjust="spacing" x="22">服务器容错技术</tspan>
        </text>
    </g>
    <g ed:width="288" ed:height="23.5" transform="translate(1257,341.2)" id="697" ed:layout="leftmap" ed:parentid="695">
        <path stroke-linejoin="round" transform="translate(302.5,33.73)" stroke="#508ab2" id="698" d="M14.5,10.2C0.5,10.2,-0.3,-10.2,-14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L288,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="280" y="18.8" lengthAdjust="spacing" x="4">：主-备方式（Active - Standby方式）</tspan>
        </text>
    </g>
    <g ed:width="472" ed:height="41.5" transform="translate(756,316.1)" id="699" ed:layout="leftmap" ed:parentid="697">
        <path stroke-linejoin="round" transform="translate(486.5,45.05)" stroke="#508ab2" id="700" d="M14.5,3.5C2.1,3.5,-3.9,-3.5,-14.5,-3.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,41.5L472,41.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">即指的是一台服务器处于某种业务的激活状态（即Active状态），</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">另一台服务器处于该业务的备用状态（即Standby状态）</tspan>
        </text>
    </g>
    <g ed:width="912" ed:height="23.5" transform="translate(316,366.3)" id="701" ed:layout="leftmap" ed:parentid="697">
        <path stroke-linejoin="round" transform="translate(926.5,10.95)" stroke="#508ab2" id="702" d="M14.5,-12.6C-0,-12.6,1,12.6,-14.5,12.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L912,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="904" y="18.8" lengthAdjust="spacing" x="4">该方式的特点是当Active状态服务器出现故障的时候，通过软件诊断将Standby机器激活，保证系统在最短时间内恢复正常使用。</tspan>
        </text>
    </g>
    <g ed:width="256" ed:height="23.5" transform="translate(1289,414.6)" id="703" ed:layout="leftmap" ed:parentid="695">
        <path stroke-linejoin="round" transform="translate(270.5,-2.98)" stroke="#508ab2" id="704" d="M14.5,-26.5C-2.8,-26.5,7.5,26.5,-14.5,26.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L256,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="248" y="18.8" lengthAdjust="spacing" x="4">双主机方式（Active-Active方式）</tspan>
        </text>
    </g>
    <g ed:width="712" ed:height="23.5" transform="translate(548,398.5)" id="705" ed:layout="leftmap" ed:parentid="703">
        <path stroke-linejoin="round" transform="translate(726.5,31.55)" stroke="#508ab2" id="706" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L712,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="704" y="18.8" lengthAdjust="spacing" x="4">即指两种不同业务分别在两台服务器上互为主备状态（即Active-Standby和Standby-Active状态），</tspan>
        </text>
    </g>
    <g ed:width="488" ed:height="23.5" transform="translate(772,430.7)" id="707" ed:layout="leftmap" ed:parentid="703">
        <path stroke-linejoin="round" transform="translate(502.5,15.45)" stroke="#508ab2" id="708" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L488,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="480" y="18.8" lengthAdjust="spacing" x="4">优点是两台服务器切换速度快，数据库连接不中断，应用不受影响。</tspan>
        </text>
    </g>
    <g ed:width="313" ed:height="44" transform="translate(2008,1889.8)" id="709" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L309,0C311.2,0,313,1.8,313,4L313,40C313,42.2,311.2,44,309,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,396.03)" stroke="#508ab2" id="710" d="M-62.7,340.5C-60.2,-89.6,-10.7,-374,62.8,-374" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="270" y="29.5" lengthAdjust="spacing" x="22">SQL Server 2008三种恢复模式</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(2350,1819.55)" id="711" ed:layout="rightmap" ed:parentid="709">
        <path stroke-linejoin="round" transform="translate(-14.5,57.88)" stroke="#508ab2" id="712" d="M-14.5,34.4C4.1,34.4,-10.5,-34.4,14.5,-34.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">1.简单恢复</tspan>
        </text>
    </g>
    <g ed:width="616" ed:height="23.5" transform="translate(2467,1803.45)" id="713" ed:layout="rightmap" ed:parentid="711">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="714" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L616,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="608" y="18.8" lengthAdjust="spacing" x="4">无日志备份。自动回收日志空间以减少空间需求，实际上不再需要管理事务日志空间。</tspan>
        </text>
    </g>
    <g ed:width="664" ed:height="23.5" transform="translate(2467,1835.65)" id="715" ed:layout="rightmap" ed:parentid="711">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="716" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L664,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="656" y="18.8" lengthAdjust="spacing" x="4">最新备份之后的更改不受保护。在发生灾难时，这些更改必须重做。只能恢复到备份的结尾。</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(2350,1883.95)" id="717" ed:layout="rightmap" ed:parentid="709">
        <path stroke-linejoin="round" transform="translate(-14.5,25.68)" stroke="#508ab2" id="718" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">2.完整恢复</tspan>
        </text>
    </g>
    <g ed:width="408" ed:height="23.5" transform="translate(2467,1867.85)" id="719" ed:layout="rightmap" ed:parentid="717">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="720" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L408,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="400" y="18.8" lengthAdjust="spacing" x="4">需要日志备份。数据文件丢失或损坏不会导致丢失工作。</tspan>
        </text>
    </g>
    <g ed:width="408" ed:height="23.5" transform="translate(2467,1900.05)" id="721" ed:layout="rightmap" ed:parentid="717">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="722" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L408,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="400" y="18.8" lengthAdjust="spacing" x="4">可以恢复到任意时点（例如应用程序或用户错误之前）。</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(2350,1948.35)" id="723" ed:layout="rightmap" ed:parentid="709">
        <path stroke-linejoin="round" transform="translate(-14.5,-6.52)" stroke="#508ab2" id="724" d="M-14.5,-30C3.4,-30,-8.9,30,14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">3.大容量日志恢复</tspan>
        </text>
    </g>
    <g ed:width="584" ed:height="23.5" transform="translate(2515,1932.25)" id="725" ed:layout="rightmap" ed:parentid="723">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="726" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L584,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="576" y="18.8" lengthAdjust="spacing" x="4">需要日志备份。是完整恢复模式的附加模式，允许执行高性能的大容量复制操作。</tspan>
        </text>
    </g>
    <g ed:width="472" ed:height="23.5" transform="translate(2515,1964.45)" id="727" ed:layout="rightmap" ed:parentid="723">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="728" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L472,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="464" y="18.8" lengthAdjust="spacing" x="4">通过使用最小方式记录大多数大容量操作，减少日志空间使用量。</tspan>
        </text>
    </g>
    <g ed:width="1136" ed:height="23.5" transform="translate(2350,1996.65)" id="729" ed:layout="rightmap" ed:parentid="709">
        <path stroke-linejoin="round" transform="translate(-14.5,-30.67)" stroke="#508ab2" id="730" d="M-14.5,-54.2C5.8,-54.2,-14.4,54.2,14.5,54.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L1136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="1128" y="18.8" lengthAdjust="spacing" x="4"> SQL Server支持对数据库中的一个数据文件进行还原的操作，在还原过程中数据库自动处于脱机状态，其它的文件不能进行读写操作，因此将受到一定的影响。</tspan>
        </text>
    </g>
    <g ed:width="304" ed:height="23.5" transform="translate(1321,1151.4)" id="731" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(318.5,138.62)" stroke="#508ab2" id="732" d="M14.5,115.1C-5.8,115.1,14.5,-115.1,-14.5,-115.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L304,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="296" y="18.8" lengthAdjust="spacing" x="4">关键字CLUSTERED表明该索引属于聚集索引</tspan>
        </text>
    </g>
    <g ed:width="243" ed:height="66" transform="translate(2008,4291.6)" id="733" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L239,0C241.2,0,243,1.8,243,4L243,62C243,64.2,241.2,66,239,66L4,66C1.8,66,0,64.2,0,62L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-799.37)" stroke="#508ab2" id="734" d="M-62.7,-798.9C-61.6,181.3,-11.7,832.4,62.8,832.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" y="29.5" x="21">SQL Server固定数据库</tspan>
            <tspan style="white-space:pre" y="51.5" x="21">角色及其权限如下：</tspan>
        </text>
    </g>
    <g ed:width="856" ed:height="167.5" transform="translate(2280,4240.85)" id="735" ed:layout="rightmap" ed:parentid="733">
        <path stroke-linejoin="round" transform="translate(-14.5,125.63)" stroke="#508ab2" id="736" d="M-14.5,-41.9C5,-41.9,-12.6,41.9,14.5,41.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,167.5L856,167.5" fill="none"/>
        <rect height="18" width="637.7" y="3.8" fill="#ff0000" x="3.6"/>
        <rect height="18" width="400.6" y="93.8" fill="#ff0000" x="3.6"/>
        <rect height="18" width="515.1" y="111.8" fill="#ff0000" x="3.6"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">db-owner：具有在数据库中进行全部操作的权限，包括配置、维护数据库及删除数据库。</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">db-accessadmin：可以添加或删除数据库用户的权限。</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">db-securityadmin：具有管理数据库角色、角色成员以及数据库中的语句和对象的权限。</tspan>
            <tspan style="white-space:pre" y="72.8" x="3">db-ddladmin：具有执行数据定义语言（DDL）的权限。</tspan>
            <tspan style="white-space:pre" y="90.8" x="3">db-backupoperator：具有备份数据库、备份日志的权限。</tspan>
            <tspan style="white-space:pre" y="108.8" x="3">db-datareader：具有查询数据库中所有用户数据的权限</tspan>
            <tspan style="white-space:pre">。</tspan>
            <tspan style="white-space:pre" y="126.8" x="3">db.datawriter：具有插入、删除和更新数据库中所有用户数据的权限。</tspan>
            <tspan style="white-space:pre" y="144.8" x="3">db.denydatareader：不允许具有查询数据库中所有用户数据的权限，等同于对所有的表和视图授予了DENY SELECT权限。</tspan>
            <tspan style="white-space:pre" y="162.8" x="3">db_denydatawriter：iA有INSERT，DELETE和UPDATE数据库中所有用户数据的权限。</tspan>
        </text>
    </g>
    <g ed:width="296" ed:height="77.5" transform="translate(1044,3127)" id="828" ed:layout="leftmap" ed:parentid="358">
        <path stroke-linejoin="round" transform="translate(310.5,23.75)" stroke="#508ab2" id="829" d="M14.5,-53.8C-5.7,-53.8,14.4,53.8,-14.5,53.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,77.5L296,77.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">数据流用 箭头表示</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">处理用  矩形框表示</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">数据存储用  圆角矩形框表示</tspan>
            <tspan style="white-space:pre" y="72.8" x="3">外部项用  圆角框或者平行四边形框表示</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1167,4312.1)" id="830" ed:layout="leftmap" ed:parentid="573">
        <path stroke-linejoin="round" transform="translate(118.5,15.45)" stroke="#508ab2" id="831" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">进行事务设计</tspan>
        </text>
    </g>
    <g ed:width="216" ed:height="23.5" transform="translate(1055,4376.5)" id="832" ed:layout="leftmap" ed:parentid="577">
        <path stroke-linejoin="round" transform="translate(230.5,15.45)" stroke="#508ab2" id="833" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L216,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="208" y="18.8" lengthAdjust="spacing" x="4">进行应用系统的存储结构设计</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(2210,3810.25)" id="836" ed:layout="rightmap" ed:parentid="537">
        <path stroke-linejoin="round" transform="translate(-14.5,-6.52)" stroke="#508ab2" id="837" d="M-14.5,-30C3.4,-30,-8.9,30,14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">clustered   表示表创建聚集索引</tspan>
        </text>
    </g>
    <g ed:width="243" ed:height="44" transform="translate(1514,4833.15)" id="838" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L239,0C241.2,0,243,1.8,243,4L243,40C243,42.2,241.2,44,239,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(305.75,-1075.65)" stroke="#508ab2" id="839" d="M62.7,-1064.2C61.9,234.4,11.9,1097.7,-62.8,1097.7" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="200" y="29.5" lengthAdjust="spacing" x="22">数据库运行维护与优化</tspan>
        </text>
    </g>
    <g ed:width="360" ed:height="95.5" transform="translate(1125,4807.4)" id="840" ed:layout="leftmap" ed:parentid="838">
        <path stroke-linejoin="round" transform="translate(374.5,71.63)" stroke="#508ab2" id="841" d="M14.5,-23.9C-2.3,-23.9,6.4,23.9,-14.5,23.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,95.5L360,95.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3"> 数据库的转储和恢复</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">数据库的安全性和完整性控制</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">数据库性能的监控分析和改进</tspan>
            <tspan style="white-space:pre" y="72.8" x="3">数据库的重组和重构</tspan>
            <tspan style="white-space:pre" y="90.8" x="3">其中引入汇总表是属于数据库性能优化的一部分。</tspan>
        </text>
    </g>
    <g ed:width="696" ed:height="23.5" transform="translate(834,2750.7)" id="842" ed:layout="leftmap" ed:parentid="639">
        <path stroke-linejoin="round" transform="translate(710.5,36.05)" stroke="#508ab2" id="843" d="M14.5,12.6C-0,12.6,1,-12.6,-14.5,-12.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L696,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="688" y="18.8" lengthAdjust="spacing" x="4">对象间的通信用对象生命线之间的水平消息线表示，箭头说明消息的类型，如同步、异步或简单。</tspan>
        </text>
    </g>
    <g ed:width="520" ed:height="23.5" transform="translate(1010,2782.9)" id="844" ed:layout="leftmap" ed:parentid="639">
        <path stroke-linejoin="round" transform="translate(534.5,19.95)" stroke="#508ab2" id="845" d="M14.5,-3.5C2.1,-3.5,-3.9,3.5,-14.5,3.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L520,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="512" y="18.8" lengthAdjust="spacing" x="4">顺序图可以表示递归过程，当一个操作调用它本身时，消息总是同步的。</tspan>
        </text>
    </g>
    <g ed:width="920" ed:height="41.5" transform="translate(610,2815.1)" id="846" ed:layout="leftmap" ed:parentid="639">
        <path stroke-linejoin="round" transform="translate(934.5,12.85)" stroke="#508ab2" id="847" d="M14.5,-28.6C-3.2,-28.6,8.4,28.6,-14.5,28.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,41.5L920,41.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">在顺序图中可以描述如何创建和销毁对象，创建或销毁一个对象的消息一般是同步的。</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">顺序图中的消息可以有条件，并规定只有条件为真时才可以发送和接收消息，如果条件之间不互相排斥，则消息可能会并行发出。</tspan>
        </text>
    </g>
    <g ed:width="103" ed:height="44" transform="translate(2008,4539.7)" id="848" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L99,0C101.2,0,103,1.8,103,4L103,40C103,42.2,101.2,44,99,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-928.92)" stroke="#508ab2" id="849" d="M-62.7,-917.4C-61.8,205.1,-11.8,950.9,62.8,950.9" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="60" y="29.5" lengthAdjust="spacing" x="22">触发器</tspan>
        </text>
    </g>
    <g ed:width="240" ed:height="23.5" transform="translate(2140,4453.35)" id="850" ed:layout="rightmap" ed:parentid="848">
        <path stroke-linejoin="round" transform="translate(-14.5,65.93)" stroke="#508ab2" id="851" d="M-14.5,42.4C5,42.4,-12.7,-42.4,14.5,-42.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L240,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="232" y="18.8" lengthAdjust="spacing" x="4">不能在视图上定义AFTER型触发器</tspan>
        </text>
    </g>
    <g ed:width="192" ed:height="23.5" transform="translate(1433,1183.6)" id="852" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(206.5,122.52)" stroke="#508ab2" id="853" d="M14.5,99C-5.8,99,14.5,-99,-14.5,-99" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L192,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="184" y="18.8" lengthAdjust="spacing" x="4">标量函数中不适用SET语句</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(1585,1264.1)" id="854" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(54.5,82.27)" stroke="#508ab2" id="855" d="M14.5,58.8C-5.8,58.8,14.5,-58.8,-14.5,-58.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">架构</tspan>
        </text>
    </g>
    <g ed:width="624" ed:height="23.5" transform="translate(932,1248)" id="856" ed:layout="leftmap" ed:parentid="854">
        <path stroke-linejoin="round" transform="translate(638.5,31.55)" stroke="#508ab2" id="857" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L624,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="616" y="18.8" lengthAdjust="spacing" x="4">在删除架构时，如果使用CASCADE选项，则会将该架构中的所有架构对象一起全部删除；</tspan>
        </text>
    </g>
    <g ed:width="688" ed:height="23.5" transform="translate(868,1280.2)" id="858" ed:layout="leftmap" ed:parentid="854">
        <path stroke-linejoin="round" transform="translate(702.5,15.45)" stroke="#508ab2" id="859" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L688,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="680" y="18.8" lengthAdjust="spacing" x="4">如果使用RESTRICT选项，如果被删除的架构中包含架构对象，则拒绝删除此架构。故答案为D项。</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1521,1328.5)" id="860" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(118.5,50.07)" stroke="#508ab2" id="861" d="M14.5,26.6C-2.8,26.6,7.6,-26.6,-14.5,-26.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">强制存取控制</tspan>
        </text>
    </g>
    <g ed:width="520" ed:height="23.5" transform="translate(972,1312.4)" id="862" ed:layout="leftmap" ed:parentid="860">
        <path stroke-linejoin="round" transform="translate(534.5,31.55)" stroke="#508ab2" id="863" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L520,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="512" y="18.8" lengthAdjust="spacing" x="4">仅当主体的许可证级别不低于客体的密级时，该主体才能读取相应的客体</tspan>
        </text>
    </g>
    <g ed:width="520" ed:height="23.5" transform="translate(972,1344.6)" id="864" ed:layout="leftmap" ed:parentid="860">
        <path stroke-linejoin="round" transform="translate(534.5,15.45)" stroke="#508ab2" id="865" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L520,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="512" y="18.8" lengthAdjust="spacing" x="4">仅当主体的许可证级别不高于客体的密级时，该主体才能写相应的客体。</tspan>
        </text>
    </g>
    <g ed:width="816" ed:height="59.5" transform="translate(809,1376.8)" id="866" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(830.5,43.93)" stroke="#508ab2" id="867" d="M14.5,-15.6C-0.7,-15.6,2.5,15.6,-14.5,15.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,59.5L816,59.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">范围划分 有利于范围查询及点查询；</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">轮转法  最适合于扫描整个关系的应用，在扫描时可以并行的从n个磁盘读取数据，负载均衡，充分发挥了并行性；</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">散列划分  适合于点查询。</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(868,3503)" id="868" ed:layout="leftmap" ed:parentid="456">
        <path stroke-linejoin="round" transform="translate(518.5,63.75)" stroke="#508ab2" id="869" d="M14.5,40.3C-4.8,40.3,12.2,-40.3,-14.5,-40.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序</tspan>
        </text>
    </g>
    <g ed:width="192" ed:height="23.5" transform="translate(2120,3290.95)" id="870" ed:layout="rightmap" ed:parentid="482">
        <path stroke-linejoin="round" transform="translate(-14.5,57.88)" stroke="#508ab2" id="871" d="M-14.5,34.4C4.1,34.4,-10.5,-34.4,14.5,-34.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L192,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="184" y="18.8" lengthAdjust="spacing" x="4">在使用TOP限定结果集中，</tspan>
        </text>
    </g>
    <g ed:width="320" ed:height="23.5" transform="translate(2341,3258.75)" id="872" ed:layout="rightmap" ed:parentid="870">
        <path stroke-linejoin="round" transform="translate(-14.5,39.6)" stroke="#508ab2" id="873" d="M-14.5,16.1C0.8,16.1,-2.8,-16.1,14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L320,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="312" y="18.8" lengthAdjust="spacing" x="4">WITH TIES表示包括最后一行取值并列的结果</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(2341,3290.95)" id="874" ed:layout="rightmap" ed:parentid="870">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="875" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">TOP n表示取查询结果的前n行数据</tspan>
        </text>
    </g>
    <g ed:width="320" ed:height="23.5" transform="translate(2341,3323.15)" id="876" ed:layout="rightmap" ed:parentid="870">
        <path stroke-linejoin="round" transform="translate(-14.5,7.4)" stroke="#508ab2" id="877" d="M-14.5,-16.1C0.8,-16.1,-2.8,16.1,14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L320,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="312" y="18.8" lengthAdjust="spacing" x="4">TOP n percent表示取查询结果的前n%行数据</tspan>
        </text>
    </g>
    <g ed:width="544" ed:height="23.5" transform="translate(2120,3355.35)" id="878" ed:layout="rightmap" ed:parentid="482">
        <path stroke-linejoin="round" transform="translate(-14.5,25.68)" stroke="#508ab2" id="879" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L544,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="536" y="18.8" lengthAdjust="spacing" x="4">可以使用DROP FUNCTION语句从当前数据库中删除一个或多个用户自定义函数</tspan>
        </text>
    </g>
    <g ed:width="440" ed:height="23.5" transform="translate(2140,4485.55)" id="880" ed:layout="rightmap" ed:parentid="848">
        <path stroke-linejoin="round" transform="translate(-14.5,49.82)" stroke="#508ab2" id="881" d="M-14.5,26.3C2.8,26.3,-7.5,-26.3,14.5,-26.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L440,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="432" y="18.8" lengthAdjust="spacing" x="4">INSERTED表用于存储INSERT和UPDATE语句所影响的行的副本。</tspan>
        </text>
    </g>
    <g ed:width="376" ed:height="23.5" transform="translate(1249,1215.8)" id="882" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(390.5,106.43)" stroke="#508ab2" id="883" d="M14.5,82.9C-5.8,82.9,14.5,-82.9,-14.5,-82.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L376,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="368" y="18.8" lengthAdjust="spacing" x="4">用户自定义函数主要包括标量函数和表值函数两类。</tspan>
        </text>
    </g>
    <g ed:width="760" ed:height="23.5" transform="translate(2120,3387.55)" id="884" ed:layout="rightmap" ed:parentid="482">
        <path stroke-linejoin="round" transform="translate(-14.5,9.58)" stroke="#508ab2" id="885" d="M-14.5,-13.9C0.3,-13.9,-1.7,13.9,14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L760,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="752" y="18.8" lengthAdjust="spacing" x="4">如果要使某用户可以将授予他的权限再转授给其他用户，那么在授权语句中需 上WITH GRANT OPTION选项。</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(2200,1004.15)" id="886" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,57.88)" stroke="#508ab2" id="887" d="M-14.5,34.4C4.1,34.4,-10.5,-34.4,14.5,-34.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">本地自治、非集中式管理以及高可用性是分布式数据库最基本的特征。</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(2120,3468.05)" id="888" ed:layout="rightmap" ed:parentid="482">
        <path stroke-linejoin="round" transform="translate(-14.5,-30.67)" stroke="#508ab2" id="889" d="M-14.5,-54.2C5.8,-54.2,-14.4,54.2,14.5,54.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">索引</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(2189,3468.05)" id="890" ed:layout="rightmap" ed:parentid="888">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="891" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">创建索引</tspan>
        </text>
    </g>
    <g ed:width="456" ed:height="23.5" transform="translate(2290,3419.75)" id="892" ed:layout="rightmap" ed:parentid="890">
        <path stroke-linejoin="round" transform="translate(-14.5,47.65)" stroke="#508ab2" id="893" d="M-14.5,24.1C2.4,24.1,-6.6,-24.1,14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L456,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="448" y="18.8" lengthAdjust="spacing" x="4"> CREATE INDEX 索引名 ON 表名(列名）	默认为非聚集索引</tspan>
        </text>
    </g>
    <g ed:width="456" ed:height="23.5" transform="translate(2290,3451.95)" id="894" ed:layout="rightmap" ed:parentid="890">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="895" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L456,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="448" y="18.8" lengthAdjust="spacing" x="4">创建唯一索引   CREATE UNIQUE INDEX 索引名 ON 表名(列名）</tspan>
        </text>
    </g>
    <g ed:width="480" ed:height="23.5" transform="translate(2290,3484.15)" id="896" ed:layout="rightmap" ed:parentid="890">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="897" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L480,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="472" y="18.8" lengthAdjust="spacing" x="4">创建聚集索引   CREATE CLUSTERED INDEX 索引名 ON 表名(列名）</tspan>
        </text>
    </g>
    <g ed:width="704" ed:height="23.5" transform="translate(2290,3516.35)" id="898" ed:layout="rightmap" ed:parentid="890">
        <path stroke-linejoin="round" transform="translate(-14.5,-0.65)" stroke="#508ab2" id="899" d="M-14.5,-24.1C2.4,-24.1,-6.6,24.1,14.5,24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L704,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="696" y="18.8" lengthAdjust="spacing" x="4">创建唯一性聚集索引按列名降序   CREATE UNIQUE CLUSTERED INDEX 索引名 ON 表名(列名 DESC）</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1521,1481)" id="933" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(118.5,-26.18)" stroke="#508ab2" id="934" d="M14.5,-49.7C-5.6,-49.7,14,49.7,-14.5,49.7" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">五种约束类型</tspan>
        </text>
    </g>
    <g ed:width="208" ed:height="95.5" transform="translate(1284,1445)" id="935" ed:layout="leftmap" ed:parentid="933">
        <path stroke-linejoin="round" transform="translate(222.5,77.5)" stroke="#508ab2" id="936" d="M14.5,-18C-1.2,-18,3.7,18,-14.5,18" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,95.5L208,95.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">主键（PRIMARY KEY）约束、</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">外键（FOREIGN KEY）约束、</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">唯一（UNIQUE）约束、</tspan>
            <tspan style="white-space:pre" y="72.8" x="3">缺省（DEFAULT）约束</tspan>
            <tspan style="white-space:pre" y="90.8" x="3">检查（CHECK）约束。</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(2210,3874.65)" id="937" ed:layout="rightmap" ed:parentid="537">
        <path stroke-linejoin="round" transform="translate(-14.5,-38.73)" stroke="#508ab2" id="938" d="M-14.5,-62.2C5.8,-62.2,-14.5,62.2,14.5,62.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">授权和收权</tspan>
        </text>
    </g>
    <g ed:width="448" ed:height="23.5" transform="translate(2327,3842.45)" id="939" ed:layout="rightmap" ed:parentid="937">
        <path stroke-linejoin="round" transform="translate(-14.5,39.6)" stroke="#508ab2" id="940" d="M-14.5,16.1C0.8,16.1,-2.8,-16.1,14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L448,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="440" y="18.8" lengthAdjust="spacing" x="4">GRANT：允许一个数据库用户或角色执行所授权限指定的操作；</tspan>
        </text>
    </g>
    <g ed:width="696" ed:height="23.5" transform="translate(2327,3874.65)" id="941" ed:layout="rightmap" ed:parentid="937">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="942" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L696,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="688" y="18.8" lengthAdjust="spacing" x="4">DENY：拒绝一个数据库用户或角色的特定权限，并且阻止它们从其他角色中继承这个权限；      </tspan>
        </text>
    </g>
    <g ed:width="232" ed:height="23.5" transform="translate(2327,3906.85)" id="943" ed:layout="rightmap" ed:parentid="937">
        <path stroke-linejoin="round" transform="translate(-14.5,7.4)" stroke="#508ab2" id="944" d="M-14.5,-16.1C0.8,-16.1,-2.8,16.1,14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L232,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="224" y="18.8" lengthAdjust="spacing" x="4">REVOKE：收回已经授予的权限。</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(2293,1618.95)" id="945" ed:layout="rightmap" ed:parentid="217">
        <path stroke-linejoin="round" transform="translate(-14.5,-0.65)" stroke="#508ab2" id="946" d="M-14.5,-24.1C2.4,-24.1,-6.6,24.1,14.5,24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">三类OLAP技术</tspan>
        </text>
    </g>
    <g ed:width="424" ed:height="77.5" transform="translate(2426,1591.95)" id="947" ed:layout="rightmap" ed:parentid="945">
        <path stroke-linejoin="round" transform="translate(-14.5,64)" stroke="#508ab2" id="948" d="M-14.5,-13.5C0.2,-13.5,-1.5,13.5,14.5,13.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,77.5L424,77.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">①基于关系型数据库的OLAP（ROLAP，Relational OLAP）；</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">②基于多维数据库的OLAP（MOLAP，Multi-</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">Dimensional OLAP）；</tspan>
            <tspan style="white-space:pre" y="72.8" x="3">3.混合型OLAP（HOLAP，Hybrid OLAP）</tspan>
        </text>
    </g>
    <g ed:width="223" ed:height="44" transform="translate(2008,4753.1)" id="949" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L219,0C221.2,0,223,1.8,223,4L223,40C223,42.2,221.2,44,219,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-1035.62)" stroke="#508ab2" id="950" d="M-62.7,-1024.1C-61.9,226.4,-11.9,1057.6,62.8,1057.6" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="180" y="29.5" lengthAdjust="spacing" x="22">ER图转换为关系模式</tspan>
        </text>
    </g>
    <g ed:width="624" ed:height="23.5" transform="translate(2260,4715.05)" id="951" ed:layout="rightmap" ed:parentid="949">
        <path stroke-linejoin="round" transform="translate(-14.5,41.78)" stroke="#508ab2" id="952" d="M-14.5,18.3C1.2,18.3,-3.8,-18.3,14.5,-18.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L624,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="616" y="18.8" lengthAdjust="spacing" x="4">1、将实体转化为同名的关系，实体的属性就是关系的属性，实体的主码就是关系的主码</tspan>
        </text>
    </g>
    <g ed:width="544" ed:height="23.5" transform="translate(2260,4747.25)" id="954" ed:layout="rightmap" ed:parentid="949">
        <path stroke-linejoin="round" transform="translate(-14.5,25.67)" stroke="#508ab2" id="955" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L544,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="536" y="18.8" lengthAdjust="spacing" x="4">2、将一对多关系的m端的主属性为主码， 1端的主码为m端的属性并且为外码</tspan>
        </text>
    </g>
    <g ed:width="400" ed:height="23.5" transform="translate(2260,4779.45)" id="956" ed:layout="rightmap" ed:parentid="949">
        <path stroke-linejoin="round" transform="translate(-14.5,9.57)" stroke="#508ab2" id="957" d="M-14.5,-13.9C0.3,-13.9,-1.7,13.9,14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L400,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="392" y="18.8" lengthAdjust="spacing" x="4">3、多对多的实体还是作为本身的关系，属性还是自身的</tspan>
        </text>
    </g>
    <g ed:width="512" ed:height="23.5" transform="translate(2260,4811.65)" id="958" ed:layout="rightmap" ed:parentid="949">
        <path stroke-linejoin="round" transform="translate(-14.5,-6.53)" stroke="#508ab2" id="959" d="M-14.5,-30C3.4,-30,-8.9,30,14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L512,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="504" y="18.8" lengthAdjust="spacing" x="4">4、多对多的联系作为关系，两边的主码作为属性，是主码同时也是外码</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(1236,3583.5)" id="960" ed:layout="leftmap" ed:parentid="456">
        <path stroke-linejoin="round" transform="translate(150.5,23.5)" stroke="#508ab2" id="961" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">四层建模概念框架</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1119,3535.2)" id="962" ed:layout="leftmap" ed:parentid="960">
        <path stroke-linejoin="round" transform="translate(102.5,47.65)" stroke="#508ab2" id="963" d="M14.5,24.1C-2.4,24.1,6.6,-24.1,-14.5,-24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">元元模型层</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1135,3567.4)" id="964" ed:layout="leftmap" ed:parentid="960">
        <path stroke-linejoin="round" transform="translate(86.5,31.55)" stroke="#508ab2" id="965" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">元模型层</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(1151,3599.6)" id="966" ed:layout="leftmap" ed:parentid="960">
        <path stroke-linejoin="round" transform="translate(70.5,15.45)" stroke="#508ab2" id="967" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">模型层</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1119,3631.8)" id="968" ed:layout="leftmap" ed:parentid="960">
        <path stroke-linejoin="round" transform="translate(102.5,-0.65)" stroke="#508ab2" id="969" d="M14.5,-24.1C-2.4,-24.1,6.6,24.1,-14.5,24.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">用户模型层</tspan>
        </text>
    </g>
    <g ed:width="280" ed:height="23.5" transform="translate(1345,1549.2)" id="970" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(294.5,-60.27)" stroke="#508ab2" id="971" d="M14.5,-83.8C-5.8,-83.8,14.5,83.8,-14.5,83.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L280,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="272" y="18.8" lengthAdjust="spacing" x="4">两端加锁协议保证事务调度的可串行性</tspan>
        </text>
    </g>
    <g ed:width="248" ed:height="23.5" transform="translate(2320,885.45)" id="972" ed:layout="rightmap" ed:parentid="120">
        <path stroke-linejoin="round" transform="translate(-14.5,-22.62)" stroke="#508ab2" id="973" d="M-14.5,-46.1C5.4,-46.1,-13.5,46.1,14.5,46.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L248,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="240" y="18.8" lengthAdjust="spacing" x="4">并行数据库中一维数据的划分方法</tspan>
        </text>
    </g>
    <g ed:width="480" ed:height="59.5" transform="translate(2597,867.45)" id="974" ed:layout="rightmap" ed:parentid="972">
        <path stroke-linejoin="round" transform="translate(-14.5,50.5)" stroke="#508ab2" id="975" d="M-14.5,-9C-0.8,-9,0.9,9,14.5,9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,59.5L480,59.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">（1）轮转法：最适合于扫描整个关系；</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">（2）散列划分法：比转转法更适合点查询，也适合顺序扫描关系；</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">（3）范围划分法：明显利于范围查询和点查询。</tspan>
        </text>
    </g>
    <g ed:width="544" ed:height="23.5" transform="translate(2140,4533.85)" id="976" ed:layout="rightmap" ed:parentid="848">
        <path stroke-linejoin="round" transform="translate(-14.5,25.68)" stroke="#508ab2" id="977" d="M-14.5,2.2C-2.4,2.2,4.6,-2.2,14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L544,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="536" y="18.8" lengthAdjust="spacing" x="4">在SQL Server 2008中，对于更新操作的触发器，系统将产生两张逻辑工作表</tspan>
        </text>
    </g>
    <g ed:width="80" ed:height="23.5" transform="translate(2713,4517.75)" id="978" ed:layout="rightmap" ed:parentid="976">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="979" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L80,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="72" y="18.8" lengthAdjust="spacing" x="4">DELETED表</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(2713,4549.95)" id="980" ed:layout="rightmap" ed:parentid="976">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="981" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">INSERTED表</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(2822,4517.75)" id="982" ed:layout="rightmap" ed:parentid="978">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="983" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">用于存储更新前数据</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(2830,4549.95)" id="984" ed:layout="rightmap" ed:parentid="980">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="985" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">用于更新后的数据</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1473,1613.6)" id="986" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(166.5,-92.47)" stroke="#508ab2" id="987" d="M14.5,-116C-5.8,-116,14.5,116,-14.5,116" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">知识发现的三个步骤</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1372,1581.4)" id="988" ed:layout="leftmap" ed:parentid="986">
        <path stroke-linejoin="round" transform="translate(86.5,39.6)" stroke="#508ab2" id="989" d="M14.5,16.1C-0.8,16.1,2.8,-16.1,-14.5,-16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">数据准备</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1372,1613.6)" id="990" ed:layout="leftmap" ed:parentid="986">
        <path stroke-linejoin="round" transform="translate(86.5,23.5)" stroke="#508ab2" id="991" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">数据挖掘</tspan>
        </text>
    </g>
    <g ed:width="120" ed:height="23.5" transform="translate(1324,1645.8)" id="992" ed:layout="leftmap" ed:parentid="986">
        <path stroke-linejoin="round" transform="translate(134.5,7.4)" stroke="#508ab2" id="993" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L120,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="112" y="18.8" lengthAdjust="spacing" x="4">结果的解释评估</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1521,1694.1)" id="996" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(118.5,-132.72)" stroke="#508ab2" id="997" d="M14.5,-156.2C-5.8,-156.2,14.5,156.2,-14.5,156.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">日志文件格式</tspan>
        </text>
    </g>
    <g ed:width="184" ed:height="23.5" transform="translate(1308,1678)" id="1000" ed:layout="leftmap" ed:parentid="996">
        <path stroke-linejoin="round" transform="translate(198.5,31.55)" stroke="#508ab2" id="1001" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L184,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="176" y="18.8" lengthAdjust="spacing" x="4">以记录为单位的日志文件</tspan>
        </text>
    </g>
    <g ed:width="200" ed:height="23.5" transform="translate(1292,1710.2)" id="1002" ed:layout="leftmap" ed:parentid="996">
        <path stroke-linejoin="round" transform="translate(214.5,15.45)" stroke="#508ab2" id="1003" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L200,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="192" y="18.8" lengthAdjust="spacing" x="4">以数据块为单位的日志文件</tspan>
        </text>
    </g>
    <g ed:width="183" ed:height="44" transform="translate(1574,5086.65)" id="1032" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L179,0C181.2,0,183,1.8,183,4L183,40C183,42.2,181.2,44,179,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(245.75,-1202.4)" stroke="#508ab2" id="1033" d="M62.7,-1190.9C62,259.8,12,1224.4,-62.8,1224.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="140" y="29.5" lengthAdjust="spacing" x="22">DBAS的性能指标</tspan>
        </text>
    </g>
    <g ed:width="560" ed:height="23.5" transform="translate(985,5048.6)" id="1034" ed:layout="leftmap" ed:parentid="1032">
        <path stroke-linejoin="round" transform="translate(574.5,41.78)" stroke="#508ab2" id="1035" d="M14.5,18.3C-1.2,18.3,3.8,-18.3,-14.5,-18.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L560,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="552" y="18.8" lengthAdjust="spacing" x="4">1、数据操作响应时间（或数据访问响应时间）：从提交请求到返回结果的时间</tspan>
        </text>
    </g>
    <g ed:width="560" ed:height="23.5" transform="translate(985,5080.8)" id="1036" ed:layout="leftmap" ed:parentid="1032">
        <path stroke-linejoin="round" transform="translate(574.5,25.68)" stroke="#508ab2" id="1037" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L560,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="552" y="18.8" lengthAdjust="spacing" x="4">②系统吞吐量：指系统在单位时间内所完成的事务或查询的数量，单位为TPS；</tspan>
        </text>
    </g>
    <g ed:width="704" ed:height="23.5" transform="translate(841,5113)" id="1038" ed:layout="leftmap" ed:parentid="1032">
        <path stroke-linejoin="round" transform="translate(718.5,9.58)" stroke="#508ab2" id="1039" d="M14.5,-13.9C-0.3,-13.9,1.7,13.9,-14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L704,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="696" y="18.8" lengthAdjust="spacing" x="4">3、允许并发访问的最大用户数：在保证响应时间的前提下，系统最多允许多少用户同时访问数据库</tspan>
        </text>
    </g>
    <g ed:width="432" ed:height="23.5" transform="translate(1113,5145.2)" id="1040" ed:layout="leftmap" ed:parentid="1032">
        <path stroke-linejoin="round" transform="translate(446.5,-6.52)" stroke="#508ab2" id="1041" d="M14.5,-30C-3.4,-30,8.9,30,-14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L432,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="424" y="18.8" lengthAdjust="spacing" x="4">④每TPS代价值，用于衡量系统性价（性能价格）比的指标。</tspan>
        </text>
    </g>
    <g ed:width="183" ed:height="44" transform="translate(2008,4922)" id="1042" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L179,0C181.2,0,183,1.8,183,4L183,40C183,42.2,181.2,44,179,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-1120.07)" stroke="#508ab2" id="1043" d="M-62.7,-1108.6C-61.9,243.3,-11.9,1142.1,62.8,1142.1" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="140" y="29.5" lengthAdjust="spacing" x="22">数据库性能优化</tspan>
        </text>
    </g>
    <g ed:width="264" ed:height="95.5" transform="translate(2220,4880.15)" id="1044" ed:layout="rightmap" ed:parentid="1042">
        <path stroke-linejoin="round" transform="translate(-14.5,79.68)" stroke="#508ab2" id="1045" d="M-14.5,-15.8C0.7,-15.8,-2.6,15.8,14.5,15.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,95.5L264,95.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">数据库性能优化一般可以从</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">数据库运行环境、</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">数据库参数调整、</tspan>
            <tspan style="white-space:pre" y="72.8" x="3">模式调整、</tspan>
            <tspan style="white-space:pre" y="90.8" x="3">数据库存储优化和查询优化进行操作</tspan>
        </text>
    </g>
    <g ed:width="392" ed:height="23.5" transform="translate(2220,4984.35)" id="1046" ed:layout="rightmap" ed:parentid="1042">
        <path stroke-linejoin="round" transform="translate(-14.5,-8.42)" stroke="#508ab2" id="1047" d="M-14.5,-31.9C3.7,-31.9,-9.6,31.9,14.5,31.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L392,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="384" y="18.8" lengthAdjust="spacing" x="4">只有物化视图属于数据库性能优化中的存储优化内容。</tspan>
        </text>
    </g>
    <g ed:width="163" ed:height="44" transform="translate(1594,189.05)" id="1048" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L159,0C161.2,0,163,1.8,163,4L163,40C163,42.2,161.2,44,159,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(225.75,1246.4)" stroke="#508ab2" id="1049" d="M62.7,1190.9C62,-259.8,12,-1224.4,-62.8,-1224.4" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="120" y="29.5" lengthAdjust="spacing" x="22">需求分析过程</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1493,151)" id="1050" ed:layout="leftmap" ed:parentid="1048">
        <path stroke-linejoin="round" transform="translate(86.5,41.78)" stroke="#508ab2" id="1051" d="M14.5,18.3C-1.2,18.3,3.8,-18.3,-14.5,-18.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">标识问题</tspan>
        </text>
    </g>
    <g ed:width="104" ed:height="23.5" transform="translate(1461,183.2)" id="1052" ed:layout="leftmap" ed:parentid="1048">
        <path stroke-linejoin="round" transform="translate(118.5,25.67)" stroke="#508ab2" id="1053" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L104,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="96" y="18.8" lengthAdjust="spacing" x="4">建立需求模型</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1493,215.4)" id="1054" ed:layout="leftmap" ed:parentid="1048">
        <path stroke-linejoin="round" transform="translate(86.5,9.58)" stroke="#508ab2" id="1055" d="M14.5,-13.9C-0.3,-13.9,1.7,13.9,-14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">描述需求</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(1493,247.6)" id="1056" ed:layout="leftmap" ed:parentid="1048">
        <path stroke-linejoin="round" transform="translate(86.5,-6.52)" stroke="#508ab2" id="1057" d="M14.5,-30C-3.4,-30,8.9,30,-14.5,30" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">确认需求</tspan>
        </text>
    </g>
    <g ed:width="232" ed:height="23.5" transform="translate(1200,183.2)" id="1060" ed:layout="leftmap" ed:parentid="1052">
        <path stroke-linejoin="round" transform="translate(246.5,23.5)" stroke="#508ab2" id="1061" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L232,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="224" y="18.8" lengthAdjust="spacing" x="4">DFD和IDEFO可用于建立需求模型</tspan>
        </text>
    </g>
    <g ed:width="528" ed:height="23.5" transform="translate(1097,1742.4)" id="1062" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(542.5,-156.88)" stroke="#508ab2" id="1063" d="M14.5,-180.4C-5.8,-180.4,14.5,180.4,-14.5,180.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L528,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="520" y="18.8" lengthAdjust="spacing" x="4">DFD和IDEFO可用于建立需求模型；而IDEF2用于系统模拟，建立动态模型。</tspan>
        </text>
    </g>
    <g ed:width="176" ed:height="23.5" transform="translate(1180,3245.4)" id="1064" ed:layout="leftmap" ed:parentid="454">
        <path stroke-linejoin="round" transform="translate(190.5,55.7)" stroke="#508ab2" id="1065" d="M14.5,32.2C-3.8,32.2,9.7,-32.2,-14.5,-32.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L176,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="168" y="18.8" lengthAdjust="spacing" x="4">组成IDEFO图的基本元素</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(1095,3229.3)" id="1066" ed:layout="leftmap" ed:parentid="1064">
        <path stroke-linejoin="round" transform="translate(70.5,31.55)" stroke="#508ab2" id="1067" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">矩形框</tspan>
        </text>
    </g>
    <g ed:width="40" ed:height="23.5" transform="translate(1111,3277.6)" id="1068" ed:layout="leftmap" ed:parentid="1064">
        <path stroke-linejoin="round" transform="translate(54.5,7.4)" stroke="#508ab2" id="1069" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L40,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="32" y="18.8" lengthAdjust="spacing" x="4">箭头</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(914,3213.2)" id="1070" ed:layout="leftmap" ed:parentid="1066">
        <path stroke-linejoin="round" transform="translate(166.5,31.55)" stroke="#508ab2" id="1071" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">矩形框代表功能活动</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(1010,3245.4)" id="1072" ed:layout="leftmap" ed:parentid="1066">
        <path stroke-linejoin="round" transform="translate(70.5,15.45)" stroke="#508ab2" id="1073" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">子主题</tspan>
        </text>
    </g>
    <g ed:width="200" ed:height="23.5" transform="translate(1156,3309.8)" id="1074" ed:layout="leftmap" ed:parentid="454">
        <path stroke-linejoin="round" transform="translate(214.5,23.5)" stroke="#508ab2" id="1075" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L200,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="192" y="18.8" lengthAdjust="spacing" x="4">其中矩形框左边的输入箭头</tspan>
        </text>
    </g>
    <g ed:width="184" ed:height="23.5" transform="translate(943,3309.8)" id="1076" ed:layout="leftmap" ed:parentid="1074">
        <path stroke-linejoin="round" transform="translate(198.5,23.5)" stroke="#508ab2" id="1077" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L184,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="176" y="18.8" lengthAdjust="spacing" x="4">表示完成活动需要的数据</tspan>
        </text>
    </g>
    <g ed:width="168" ed:height="23.5" transform="translate(1188,3342)" id="1078" ed:layout="leftmap" ed:parentid="454">
        <path stroke-linejoin="round" transform="translate(182.5,7.4)" stroke="#508ab2" id="1079" d="M14.5,-16.1C-0.8,-16.1,2.8,16.1,-14.5,16.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L168,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="160" y="18.8" lengthAdjust="spacing" x="4">矩形框上方的控制箭头</tspan>
        </text>
    </g>
    <g ed:width="312" ed:height="23.5" transform="translate(847,3342)" id="1080" ed:layout="leftmap" ed:parentid="1078">
        <path stroke-linejoin="round" transform="translate(326.5,23.5)" stroke="#508ab2" id="1081" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L312,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="304" y="18.8" lengthAdjust="spacing" x="4">描述了影响整个活动执行的事件或约束条件</tspan>
        </text>
    </g>
    <g ed:width="328" ed:height="23.5" transform="translate(1028,3374.2)" id="1082" ed:layout="leftmap" ed:parentid="454">
        <path stroke-linejoin="round" transform="translate(342.5,-8.7)" stroke="#508ab2" id="1083" d="M14.5,-32.2C-3.8,-32.2,9.7,32.2,-14.5,32.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L328,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="320" y="18.8" lengthAdjust="spacing" x="4">右边的输出箭头说明由活动产生的结果及信息</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(1204,3406.4)" id="1084" ed:layout="leftmap" ed:parentid="454">
        <path stroke-linejoin="round" transform="translate(166.5,-24.8)" stroke="#508ab2" id="1085" d="M14.5,-48.3C-5.5,-48.3,13.8,48.3,-14.5,48.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">下方进入的机制箭头</tspan>
        </text>
    </g>
    <g ed:width="568" ed:height="23.5" transform="translate(607,3406.4)" id="1086" ed:layout="leftmap" ed:parentid="1084">
        <path stroke-linejoin="round" transform="translate(582.5,23.5)" stroke="#508ab2" id="1087" d="M14.5,0C2.9,0,-5.8,0,-14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L568,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="560" y="18.8" lengthAdjust="spacing" x="4">表示实施该活动的物理手段或完成活动需要的资源（计算机系统、人或组织）。</tspan>
        </text>
    </g>
    <g ed:width="384" ed:height="23.5" transform="translate(1241,1774.6)" id="1088" ed:layout="leftmap" ed:parentid="254">
        <path d="M0,0L384,0L384,23.5L0,23.5L0,0z" fill="#ffd900"/>
        <path stroke-linejoin="round" transform="translate(398.5,-172.98)" stroke="#508ab2" id="1089" d="M14.5,-196.5C-5.8,-196.5,14.5,196.5,-14.5,196.5" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L384,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="376" y="18.8" lengthAdjust="spacing" x="4">在IDEF1X中一个非确定联系又称为多对多关系或m:n联</tspan>
        </text>
    </g>
    <g ed:width="168" ed:height="23.5" transform="translate(2330,476.95)" id="1090" ed:layout="rightmap" ed:parentid="260">
        <path stroke-linejoin="round" transform="translate(-14.5,49.82)" stroke="#508ab2" id="1091" d="M-14.5,26.3C2.8,26.3,-7.5,-26.3,14.5,-26.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L168,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="160" y="18.8" lengthAdjust="spacing" x="4">避免事务中的用户交互</tspan>
        </text>
    </g>
    <g ed:width="152" ed:height="23.5" transform="translate(2330,573.55)" id="1092" ed:layout="rightmap" ed:parentid="260">
        <path stroke-linejoin="round" transform="translate(-14.5,1.52)" stroke="#508ab2" id="1093" d="M-14.5,-22C2,-22,-5.6,22,14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="144" y="18.8" lengthAdjust="spacing" x="4">尽量缩短事务的长度</tspan>
        </text>
    </g>
    <g ed:width="136" ed:height="23.5" transform="translate(2330,605.75)" id="1094" ed:layout="rightmap" ed:parentid="260">
        <path stroke-linejoin="round" transform="translate(-14.5,-14.57)" stroke="#508ab2" id="1095" d="M-14.5,-38.1C4.6,-38.1,-11.6,38.1,14.5,38.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L136,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="128" y="18.8" lengthAdjust="spacing" x="4">减少占有锁的时间</tspan>
        </text>
    </g>
    <g ed:width="376" ed:height="23.5" transform="translate(2330,637.95)" id="1096" ed:layout="rightmap" ed:parentid="260">
        <path stroke-linejoin="round" transform="translate(-14.5,-30.68)" stroke="#508ab2" id="1097" d="M-14.5,-54.2C5.8,-54.2,-14.4,54.2,14.5,54.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L376,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="368" y="18.8" lengthAdjust="spacing" x="4">尽量使用记录级别的锁（行锁），少使用表级别的锁</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(2140,4582.15)" id="1098" ed:layout="rightmap" ed:parentid="848">
        <path stroke-linejoin="round" transform="translate(-14.5,1.52)" stroke="#508ab2" id="1099" d="M-14.5,-22C2,-22,-5.6,22,14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">前触发器</tspan>
        </text>
    </g>
    <g ed:width="72" ed:height="23.5" transform="translate(2140,4630.45)" id="1100" ed:layout="rightmap" ed:parentid="848">
        <path stroke-linejoin="round" transform="translate(-14.5,-22.62)" stroke="#508ab2" id="1101" d="M-14.5,-46.1C5.4,-46.1,-13.5,46.1,14.5,46.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L72,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="64" y="18.8" lengthAdjust="spacing" x="4">后触发器</tspan>
        </text>
    </g>
    <g ed:width="328" ed:height="23.5" transform="translate(2241,4582.15)" id="1102" ed:layout="rightmap" ed:parentid="1098">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="1103" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L328,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="320" y="18.8" lengthAdjust="spacing" x="4">使用INSTEAD OF选项定义的触发器为前触发器</tspan>
        </text>
    </g>
    <g ed:width="392" ed:height="23.5" transform="translate(2241,4614.35)" id="1104" ed:layout="rightmap" ed:parentid="1100">
        <path stroke-linejoin="round" transform="translate(-14.5,31.55)" stroke="#508ab2" id="1105" d="M-14.5,8.1C-1,8.1,1.4,-8.1,14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L392,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="384" y="18.8" lengthAdjust="spacing" x="4">使用FOR或者AFTER选项定义的触发器为后触发的触发器</tspan>
        </text>
    </g>
    <g ed:width="744" ed:height="23.5" transform="translate(2241,4646.55)" id="1106" ed:layout="rightmap" ed:parentid="1100">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="1107" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L744,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="736" y="18.8" lengthAdjust="spacing" x="4">只有在引发触发器执行的语句中的操作都已成功执行，并且所有的约束检查也成功完成后，才执行触发器</tspan>
        </text>
    </g>
    <g ed:width="440" ed:height="23.5" transform="translate(1185,1806.8)" id="1110" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(454.5,-189.08)" stroke="#508ab2" id="1111" d="M14.5,-212.6C-5.8,-212.6,14.5,212.6,-14.5,212.6" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L440,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="432" y="18.8" lengthAdjust="spacing" x="4">SQL Server 2008数据库中主要数据文件大小最小不能小于3MB</tspan>
        </text>
    </g>
    <g ed:width="608" ed:height="41.5" transform="translate(1017,1839)" id="1112" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(622.5,-196.18)" stroke="#508ab2" id="1113" d="M14.5,-237.7C-5.8,-237.7,14.5,237.7,-14.5,237.7" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,41.5L608,41.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">RAID1提高了读写速度，加强了系统的可靠性，但是磁盘的利用率低；</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">RAID5写入数据的速度比对RAID1慢，但是磁盘的利用率比RAID1高，存储成本相对较低</tspan>
        </text>
    </g>
    <g ed:width="416" ed:height="23.5" transform="translate(2221,2129.55)" id="1114" ed:layout="rightmap" ed:parentid="268">
        <path stroke-linejoin="round" transform="translate(-14.5,15.45)" stroke="#508ab2" id="1115" d="M-14.5,-8.1C-1,-8.1,1.4,8.1,14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L416,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="408" y="18.8" lengthAdjust="spacing" x="4">如果使用WITH DIFFERENTIAL关键字则表明采用差异备份。</tspan>
        </text>
    </g>
    <g ed:width="504" ed:height="23.5" transform="translate(2200,1165.15)" id="1116" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,-22.62)" stroke="#508ab2" id="1117" d="M-14.5,-46.1C5.4,-46.1,-13.5,46.1,14.5,46.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L504,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="496" y="18.8" lengthAdjust="spacing" x="4">在集中式数据库系统中，查询代价主要是由CPU代价和I/0代价来衡量的</tspan>
        </text>
    </g>
    <g ed:width="312" ed:height="23.5" transform="translate(2200,1197.35)" id="1118" ed:layout="rightmap" ed:parentid="197">
        <path stroke-linejoin="round" transform="translate(-14.5,-38.72)" stroke="#508ab2" id="1119" d="M-14.5,-62.2C5.8,-62.2,-14.5,62.2,14.5,62.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L312,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="304" y="18.8" lengthAdjust="spacing" x="4">在分布式数据库系统中主要由通信代价衡量</tspan>
        </text>
    </g>
    <g ed:width="1000" ed:height="59.5" transform="translate(625,1889.2)" id="1120" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(1014.5,-212.28)" stroke="#508ab2" id="1121" d="M14.5,-271.8C-5.8,-271.8,14.5,271.8,-14.5,271.8" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,59.5L1000,59.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" y="18.8" x="3">无共享结构被认为是支持并行数据库系统的最好并行结构，</tspan>
            <tspan style="white-space:pre" y="36.8" x="3">它通过最小化共享资源来降低资源竞争的概率，具有极高的可扩展性，并可在复杂数据库查询处理和联机事务处理过程中达到近线性的加速比</tspan>
            <tspan style="white-space:pre" y="54.8" x="3">无共享结构比较适合OLTP之类的应用。</tspan>
        </text>
    </g>
    <g ed:width="88" ed:height="23.5" transform="translate(1377,3454.7)" id="1122" ed:layout="leftmap" ed:parentid="356">
        <path stroke-linejoin="round" transform="translate(102.5,-52.22)" stroke="#508ab2" id="1123" d="M14.5,-75.7C-5.8,-75.7,14.5,75.7,-14.5,75.7" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L88,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="80" y="18.8" lengthAdjust="spacing" x="4">IDEF1X方法</tspan>
        </text>
    </g>
    <g ed:width="232" ed:height="23.5" transform="translate(1116,3438.6)" id="1124" ed:layout="leftmap" ed:parentid="1122">
        <path stroke-linejoin="round" transform="translate(246.5,31.55)" stroke="#508ab2" id="1125" d="M14.5,8.1C1,8.1,-1.4,-8.1,-14.5,-8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L232,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="224" y="18.8" lengthAdjust="spacing" x="4">直角矩形框用于表示独立实体集</tspan>
        </text>
    </g>
    <g ed:width="232" ed:height="23.5" transform="translate(1116,3470.8)" id="1126" ed:layout="leftmap" ed:parentid="1122">
        <path stroke-linejoin="round" transform="translate(246.5,15.45)" stroke="#508ab2" id="1127" d="M14.5,-8.1C1,-8.1,-1.4,8.1,-14.5,8.1" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L232,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="224" y="18.8" lengthAdjust="spacing" x="4">圆角矩形框用于表示从属实体集</tspan>
        </text>
    </g>
    <g ed:width="193" ed:height="44" transform="translate(2008,5074.8)" id="1128" ed:layout="rightmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L189,0C191.2,0,193,1.8,193,4L193,40C193,42.2,191.2,44,189,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(-62.75,-1196.47)" stroke="#508ab2" id="1129" d="M-62.7,-1185C-62,258.6,-12,1218.5,62.8,1218.5" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="150" y="29.5" lengthAdjust="spacing" x="22">三层B/S架构系统</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(2230,5052.85)" id="1130" ed:layout="rightmap" ed:parentid="1128">
        <path stroke-linejoin="round" transform="translate(-14.5,33.73)" stroke="#508ab2" id="1131" d="M-14.5,10.2C-0.5,10.2,0.3,-10.2,14.5,-10.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">表示层</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(2230,5085.05)" id="1132" ed:layout="rightmap" ed:parentid="1128">
        <path stroke-linejoin="round" transform="translate(-14.5,17.62)" stroke="#508ab2" id="1133" d="M-14.5,-5.9C-1.5,-5.9,2.6,5.9,14.5,5.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">应用层</tspan>
        </text>
    </g>
    <g ed:width="56" ed:height="23.5" transform="translate(2230,5117.25)" id="1134" ed:layout="rightmap" ed:parentid="1128">
        <path stroke-linejoin="round" transform="translate(-14.5,1.52)" stroke="#508ab2" id="1135" d="M-14.5,-22C2,-22,-5.6,22,14.5,22" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L56,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="48" y="18.8" lengthAdjust="spacing" x="4">数据层</tspan>
        </text>
    </g>
    <g ed:width="272" ed:height="23.5" transform="translate(2315,5052.85)" id="1136" ed:layout="rightmap" ed:parentid="1130">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="1137" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L272,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="264" y="18.8" lengthAdjust="spacing" x="4">表示层位于客户端，由Web浏览器实现</tspan>
        </text>
    </g>
    <g ed:width="448" ed:height="23.5" transform="translate(2315,5085.05)" id="1138" ed:layout="rightmap" ed:parentid="1132">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="1139" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L448,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="440" y="18.8" lengthAdjust="spacing" x="4">应用层位于Web应用服务器，实现面向具体应用领域的业务规则</tspan>
        </text>
    </g>
    <g ed:width="616" ed:height="23.5" transform="translate(2315,5117.25)" id="1140" ed:layout="rightmap" ed:parentid="1134">
        <path stroke-linejoin="round" transform="translate(-14.5,23.5)" stroke="#508ab2" id="1141" d="M-14.5,0C-2.9,0,5.8,0,14.5,0" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L616,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="608" y="18.8" lengthAdjust="spacing" x="4">数据层位于数据库服务器，通过DBMS完成具体的数据存储和数据存取等数据管理功能。</tspan>
        </text>
    </g>
    <g ed:width="408" ed:height="23.5" transform="translate(2120,3548.55)" id="1142" ed:layout="rightmap" ed:parentid="482">
        <path stroke-linejoin="round" transform="translate(-14.5,-70.92)" stroke="#508ab2" id="1143" d="M-14.5,-94.4C5.8,-94.4,-14.5,94.4,14.5,94.4" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L408,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="400" y="18.8" lengthAdjust="spacing" x="4">声明游标的语法是：DECLARE游标名 cursor FOR SQL语句</tspan>
        </text>
    </g>
    <g ed:width="696" ed:height="23.5" transform="translate(929,1957.4)" id="1146" ed:layout="leftmap" ed:parentid="254">
        <path stroke-linejoin="round" transform="translate(710.5,-264.38)" stroke="#508ab2" id="1147" d="M14.5,-287.9C-5.8,-287.9,14.5,287.9,-14.5,287.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L696,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="688" y="18.8" lengthAdjust="spacing" x="4">增加冗余列的调优方法是指在多个表中增加具有相同语义的列，它常用来在查询时避免连接操作。</tspan>
        </text>
    </g>
    <g ed:width="203" ed:height="44" transform="translate(1554,4953.75)" id="1150" ed:layout="leftmap" ed:parentid="101">
        <path stroke-linejoin="round" stroke="#508ab2" d="M4,0L199,0C201.2,0,203,1.8,203,4L203,40C203,42.2,201.2,44,199,44L4,44C1.8,44,0,42.2,0,40L0,4C0,1.8,1.8,0,4,0z" fill="#f5f9fe"/>
        <path stroke-linejoin="round" transform="translate(265.75,-1135.95)" stroke="#508ab2" id="1151" d="M62.7,-1124.5C61.9,246.5,11.9,1158,-62.8,1158" stroke-linecap="round" fill="none"/>
        <text class="st1">
            <tspan style="white-space:pre" textLength="160" y="29.5" lengthAdjust="spacing" x="22">分割表的调优方法</tspan>
        </text>
    </g>
    <g ed:width="512" ed:height="23.5" transform="translate(1013,4947.9)" id="1152" ed:layout="leftmap" ed:parentid="1150">
        <path stroke-linejoin="round" transform="translate(526.5,25.68)" stroke="#508ab2" id="1153" d="M14.5,2.2C2.4,2.2,-4.6,-2.2,-14.5,-2.2" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L512,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="504" y="18.8" lengthAdjust="spacing" x="4">水平分割会给应用增加复杂度，特别是在查询所有数据时需要union操作</tspan>
        </text>
    </g>
    <g ed:width="1152" ed:height="23.5" transform="translate(373,4980.1)" id="1154" ed:layout="leftmap" ed:parentid="1150">
        <path stroke-linejoin="round" transform="translate(1166.5,9.58)" stroke="#508ab2" id="1155" d="M14.5,-13.9C-0.3,-13.9,1.7,13.9,-14.5,13.9" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L1152,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="1144" y="18.8" lengthAdjust="spacing" x="4">垂直分割使得数据行变小，一个数据页就能存放更多的数据，在查询时就会减少I/0次数，从而提高系统性能，但其缺点是查询所有数据时需要Join（连接）操作。</tspan>
        </text>
    </g>
    <g ed:width="400" ed:height="23.5" transform="translate(972,3664)" id="1206" ed:layout="leftmap" ed:parentid="456">
        <path stroke-linejoin="round" transform="translate(414.5,-16.75)" stroke="#508ab2" id="1207" d="M14.5,-40.3C-4.8,-40.3,12.2,40.3,-14.5,40.3" stroke-linecap="round" fill="none"/>
        <path stroke-linejoin="round" stroke="#508ab2" d="M0,23.5L400,23.5" fill="none"/>
        <text class="st2">
            <tspan style="white-space:pre" textLength="392" y="18.8" lengthAdjust="spacing" x="4">在UML的状态机图中，状态之间的转移是由事件驱动的。</tspan>
        </text>
    </g>
    <g ed:width="125" ed:height="67" transform="translate(1820,2626.35)" ed:topictype="mainidea" id="101" ed:layout="map">
        <path stroke-width="3" stroke-linejoin="round" stroke="#508ab2" d="M8,0L117,0C121.4,0,125,3.6,125,8L125,59C125,63.4,121.4,67,117,67L8,67C3.6,67,0,63.4,0,59L0,8C0,3.6,3.6,0,8,0z" fill="#ebf4fc"/>
        <text class="st4">
            <tspan style="white-space:pre" textLength="72" y="43.5" lengthAdjust="spacing" x="27">数据库</tspan>
        </text>
    </g>
    <g transform="translate(1946,2653.85)" ed:togtopicid="101">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2112,233)" ed:togtopicid="102">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2229,200.8)" ed:togtopicid="104">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2269,265.2)" ed:togtopicid="108">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2332,365.9)" ed:togtopicid="118">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2292,810.7)" ed:togtopicid="120">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2457,760.5)" ed:togtopicid="122">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2473,824.9)" ed:togtopicid="124">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1621,2526.95)" ed:togtopicid="134">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1552,2526.95)" ed:togtopicid="138">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1661,2196.75)" ed:togtopicid="142">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1621,2063.85)" ed:togtopicid="171">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1248,2031.65)" ed:togtopicid="173">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2132,1730.45)" ed:togtopicid="181">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2092,2119.2)" ed:togtopicid="189">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2361,712.2)" ed:togtopicid="193">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2172,1090.4)" ed:togtopicid="197">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2241,977.7)" ed:togtopicid="199">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2092,1528.1)" ed:togtopicid="213">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2265,1436.7)" ed:togtopicid="215">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2265,1576.4)" ed:togtopicid="217">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1641,1399.15)" ed:togtopicid="254">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2302,547.1)" ed:togtopicid="260">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2193,2119.2)" ed:togtopicid="268">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2152,1303.8)" ed:togtopicid="274">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2893,1271.6)" ed:togtopicid="276">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1581,4696.35)" ed:togtopicid="297">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2092,2341.6)" ed:togtopicid="299">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2192,2676.7)" ed:togtopicid="306">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2309,2547.9)" ed:togtopicid="308">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2309,2660.6)" ed:togtopicid="316">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2357,2789.4)" ed:togtopicid="324">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2232,3018.9)" ed:togtopicid="332">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2509,3083.3)" ed:togtopicid="334">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2493,2922.3)" ed:togtopicid="338">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2413,3002.8)" ed:togtopicid="344">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1481,3320.75)" ed:togtopicid="356">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1356,3079.25)" ed:togtopicid="358">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1287,3068.35)" ed:togtopicid="366">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1611,521.05)" ed:togtopicid="402">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1521,4060.25)" ed:togtopicid="412">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1404,3770.45)" ed:togtopicid="414">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1404,3850.95)" ed:togtopicid="416">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1404,4028.05)" ed:togtopicid="418">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1641,2361.85)" ed:togtopicid="438">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1372,3315.55)" ed:togtopicid="454">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1388,3589.25)" ed:togtopicid="456">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2273,2309.4)" ed:togtopicid="462">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2257,2415)" ed:togtopicid="474">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2092,3377.2)" ed:togtopicid="482">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2441,3200.1)" ed:togtopicid="484">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1556,915.65)" ed:togtopicid="507">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1303,3867.05)" ed:togtopicid="515">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1303,4044.15)" ed:togtopicid="523">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2182,3767.7)" ed:togtopicid="537">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2251,3622.8)" ed:togtopicid="539">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2283,3655)" ed:togtopicid="543">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2307,3687.2)" ed:togtopicid="547">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2275,3751.6)" ed:togtopicid="553">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1420,4269.55)" ed:togtopicid="561">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1319,4156.85)" ed:togtopicid="563">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1287,4221.25)" ed:togtopicid="567">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1287,4301.75)" ed:togtopicid="573">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1287,4366.15)" ed:togtopicid="577">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2433,3232.3)" ed:togtopicid="587">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1444,1012.25)" ed:togtopicid="591">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1671,686.15)" ed:togtopicid="601">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2426,2821.6)" ed:togtopicid="615">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1631,2765.45)" ed:togtopicid="627">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1530,2627.65)" ed:togtopicid="629">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1546,2675.95)" ed:togtopicid="633">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1546,2781.55)" ed:togtopicid="639">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1546,2887.15)" ed:togtopicid="643">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2172,4079.6)" ed:togtopicid="651">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2337,3997.2)" ed:togtopicid="657">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2321,4061.6)" ed:togtopicid="659">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2313,4109.9)" ed:togtopicid="665">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1541,4515.15)" ed:togtopicid="673">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1524,2394.05)" ed:togtopicid="687">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1561,379.15)" ed:togtopicid="695">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1244,346.95)" ed:togtopicid="697">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1276,420.35)" ed:togtopicid="703">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2322,1905.8)" ed:togtopicid="709">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2439,1825.3)" ed:togtopicid="711">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2439,1889.7)" ed:togtopicid="717">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2487,1954.1)" ed:togtopicid="723">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2252,4318.6)" ed:togtopicid="733">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1501,4849.15)" ed:togtopicid="838">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2112,4555.7)" ed:togtopicid="848">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1572,1269.85)" ed:togtopicid="854">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1508,1334.25)" ed:togtopicid="860">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2313,3296.7)" ed:togtopicid="870">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2161,3473.8)" ed:togtopicid="888">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2262,3473.8)" ed:togtopicid="890">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1508,1486.75)" ed:togtopicid="933">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2299,3880.4)" ed:togtopicid="937">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2398,1624.7)" ed:togtopicid="945">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2232,4769.1)" ed:togtopicid="949">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1223,3589.25)" ed:togtopicid="960">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2569,891.2)" ed:togtopicid="972">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2685,4539.6)" ed:togtopicid="976">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2794,4523.5)" ed:togtopicid="978">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2802,4555.7)" ed:togtopicid="980">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1460,1619.35)" ed:togtopicid="986">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1508,1699.85)" ed:togtopicid="996">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1561,5102.65)" ed:togtopicid="1032">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2192,4938)" ed:togtopicid="1042">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1581,205.05)" ed:togtopicid="1048">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1448,188.95)" ed:togtopicid="1052">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1167,3251.15)" ed:togtopicid="1064">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1082,3235.05)" ed:togtopicid="1066">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1143,3315.55)" ed:togtopicid="1074">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1175,3347.75)" ed:togtopicid="1078">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1191,3412.15)" ed:togtopicid="1084">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2213,4587.9)" ed:togtopicid="1098">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2213,4636.2)" ed:togtopicid="1100">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1364,3460.45)" ed:togtopicid="1122">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2202,5090.8)" ed:togtopicid="1128">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2287,5058.6)" ed:togtopicid="1130">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2287,5090.8)" ed:togtopicid="1132">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(2287,5123)" ed:togtopicid="1134">
        <use xlink:href="#minus"/>
    </g>
    <g transform="translate(1541,4969.75)" ed:togtopicid="1150">
        <use xlink:href="#minus"/>
    </g>
    <symbol id="plus">
        <path d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6z" fill="url(#lg1)"/>
        <path stroke="#46a000" d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6zM3,6L9,6M6,3L6,9" fill="none"/>
    </symbol>
    <symbol id="minus">
        <path d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6z" fill="url(#lg1)"/>
        <path stroke="#46a000" d="M11,6C11,8.8,8.8,11,6,11C3.2,11,1,8.8,1,6C1,3.2,3.2,1,6,1C8.8,1,11,3.2,11,6zM3,6L9,6" fill="none"/>
    </symbol>
</svg>
</div>
        <div id="copyright">Created With  <a href="https://www.edrawsoft.com/" target="_blank" title="edrawsoft">MindMaster</a></div>
      </div>
    </div>
    <script>eval(atob('dmFyIG11YT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDsNCnZhciB1YT0obXVhLmluZGV4T2YoJ3J2OjExJykrbXVhLmluZGV4T2YoJ01TSUUnKSk+PTA7DQpOdW1iZXIucHJvdG90eXBlLnRvc3VpdHN2Zz1mdW5jdGlvbiAoKSB7DQogICAgdmFyIG51bT10aGlzLnZhbHVlT2YoKTsNCiAgICBpZihudW0lMT09PTApew0KICAgICAgICByZXR1cm4gbnVtKzAuNQ0KICAgIH1lbHNlIHJldHVybiBudW07DQp9Ow0KTnVtYmVyLnByb3RvdHlwZS5wbHVzej1mdW5jdGlvbigpIHsNCiAgICB2YXIgbnVtPXRoaXMudmFsdWVPZigpOw0KICAgIHJldHVybiBudW08MTA/JzAnK251bTpudW07DQp9Ow0KZnVuY3Rpb24gcGFyc2VEYXRlKG51bSkgew0KICAgIHZhciBkYXRlID0gbmV3IERhdGUobnVtKTsNCiAgICB2YXIgWSA9IGRhdGUuZ2V0RnVsbFllYXIoKSArICctJzsNCiAgICB2YXIgTSA9IChkYXRlLmdldE1vbnRoKCkrMSkucGx1c3ooKSArICctJzsNCiAgICB2YXIgRCA9IGRhdGUuZ2V0RGF0ZSgpLnBsdXN6KCkgKyAnICc7DQogICAgdmFyIGggPSBkYXRlLmdldEhvdXJzKCkucGx1c3ooKSArICc6JzsNCiAgICB2YXIgbW0gPSBkYXRlLmdldE1pbnV0ZXMoKS5wbHVzeigpICsgJzonOw0KICAgIHZhciBzID0gZGF0ZS5nZXRTZWNvbmRzKCkucGx1c3ooKTsNCiAgICByZXR1cm4gWStNK0QraCttbStzOw0KfQ0KLy8tLXByZWRlZmluZWQNCi8vY29tbWVudC0tDQp2YXIgY29tbWVudHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZz5nW2VkXFw6Y29tbWVudF0nKTsNCmZ1bmN0aW9uIGdldGN3aChwb3B1cCkgew0KICAgIGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3N2ZycpWzBdLmFwcGVuZENoaWxkKHBvcHVwKTsNCiAgICB2YXIgdz1wb3B1cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsNCiAgICB2YXIgaD1wb3B1cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7DQogICAgcmV0dXJuIFt3LGhdDQp9DQpmb3IodmFyIGk9MDtpPGNvbW1lbnRzLmxlbmd0aDtpKyspew0KICAgIHZhciBwb3B1cD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywnZycpOw0KICAgIHZhciBob3Zlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgIHZhciBvbGluZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnZmlsbCcsJyNjZGNkZmYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCd5JywnMCcpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywnMTYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywnMTYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ2ZpbGwtb3BhY2l0eScsJzAuNicpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJyxjb21tZW50c1tpXS5xdWVyeVNlbGVjdG9yKCd1c2UnKS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpKTsNCiAgICBob3Zlci5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICBjb21tZW50c1tpXS5hcHBlbmRDaGlsZChob3Zlcik7DQogICAgdmFyIGE9SlNPTi5wYXJzZShjb21tZW50c1tpXS5nZXRBdHRyaWJ1dGUoJ2VkOmNvbW1lbnQnKSk7DQogICAgdmFyIGhlaWdodD0wOw0KICAgIHZhciBjYXJyPVtdOw0KICAgIGZvcih2YXIgaj0wO2o8YS5sZW5ndGg7aisrKXsNCiAgICAgICAgdmFyIHN0YW1wPU51bWJlcihhW2pdLkRhdGUpKjEwMDA7DQogICAgICAgIHZhciB0aW1lPXBhcnNlRGF0ZShzdGFtcCk7DQogICAgICAgIHZhciBuYW1lPWFbal0uTmFtZTsNCiAgICAgICAgdmFyIG1lc3NhZ2U9YVtqXS5NZXNzYWdlOw0KICAgICAgICB2YXIgbWVzc2FnZUFycj1tZXNzYWdlLnNwbGl0KC9cbi8pOw0KICAgICAgICB2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywnZycpOw0KICAgICAgICB2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICB2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICB2YXIgbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICBuLnNldEF0dHJpYnV0ZSgneCcsNSk7DQogICAgICAgIG4uc2V0QXR0cmlidXRlKCd5JywxMik7DQogICAgICAgIG4uc2V0QXR0cmlidXRlKCdmaWxsJywnIzAwNmVmZicpOw0KICAgICAgICBuLnRleHRDb250ZW50PW5hbWUrJ++8mic7DQogICAgICAgIG4uc2V0QXR0cmlidXRlKCdmb250LXNpemUnLCcxMicpOw0KICAgICAgICB0LnNldEF0dHJpYnV0ZSgneCcsMjAwKTsNCiAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ3knLDEyKTsNCiAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCcjOTY5Njk2Jyk7DQogICAgICAgIHQudGV4dENvbnRlbnQ9dGltZTsNCiAgICAgICAgdC5zZXRBdHRyaWJ1dGUoJ2ZvbnQtc2l6ZScsJzEwJyk7DQogICAgICAgIG0uc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCd0cmFuc2xhdGUoMjAsMjcpJyk7DQogICAgICAgIG0uc2V0QXR0cmlidXRlKCdmb250LXNpemUnLCcxMicpOw0KICAgICAgICBmb3IodmFyIGs9MDtrPG1lc3NhZ2VBcnIubGVuZ3RoO2srKyl7DQogICAgICAgICAgICB2YXIgdHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ3RzcGFuJyk7DQogICAgICAgICAgICB0cy5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgICAgICAgICB0cy5zZXRBdHRyaWJ1dGUoJ3knLGsqMTYpOw0KICAgICAgICAgICAgdHMudGV4dENvbnRlbnQ9bWVzc2FnZUFycltrXTsNCiAgICAgICAgICAgIG0uYXBwZW5kQ2hpbGQodHMpOw0KICAgICAgICB9DQogICAgICAgIG8uc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCd0cmFuc2xhdGUoMCwnK2hlaWdodCsnKScpOw0KICAgICAgICBvLmFwcGVuZENoaWxkKG4pOw0KICAgICAgICBvLmFwcGVuZENoaWxkKHQpOw0KICAgICAgICBvLmFwcGVuZENoaWxkKG0pOw0KICAgICAgICBjYXJyLnB1c2gobyk7DQogICAgICAgIHBvcHVwLmFwcGVuZENoaWxkKG8pOw0KICAgICAgICBoZWlnaHQ9KG1lc3NhZ2VBcnIubGVuZ3RoKzEpKjE2K2hlaWdodDsNCiAgICB9DQogICAgdmFyIHdhcnI9Z2V0Y3doKHBvcHVwKTsNCiAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgb2xpbmUuc2V0QXR0cmlidXRlKCd5JywnMCcpOw0KICAgIHZhciBvdz13YXJyWzBdKzEwLjU7DQogICAgdmFyIG9oPXdhcnJbMV0rMzsNCiAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ3dpZHRoJyxvdyk7DQogICAgb2xpbmUuc2V0QXR0cmlidXRlKCdoZWlnaHQnLG9oKTsNCiAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCd3aGl0ZScpOw0KICAgIG9saW5lLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywnIzY1NjU2NScpOw0KICAgIHBvcHVwLmFwcGVuZENoaWxkKG9saW5lKTsNCiAgICB2YXIgbD1jYXJyLmxlbmd0aDsNCiAgICB3aGlsZShsLS0pew0KICAgICAgICBwb3B1cC5hcHBlbmRDaGlsZChjYXJyW2xdKTsNCiAgICB9DQogICAgcG9wdXAub25tb3VzZW92ZXI9ZnVuY3Rpb24gKCkgew0KICAgICAgICB0aGlzLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsNCiAgICB9Ow0KICAgIHBvcHVwLm9ubW91c2VvdXQ9ZnVuY3Rpb24gKCkgew0KICAgICAgICB0aGlzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQogICAgfTsNCiAgICB2YXIgY3M9Y29tbWVudHNbaV0ucXVlcnlTZWxlY3RvcigndXNlJykuZ2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nKS5tYXRjaCgvXCgoXFMqfFxTKlxzXFMqKVwpLylbMV0uc3BsaXQoLyB8LC8pOw0KICAgIHZhciBwcz1jb21tZW50c1tpXS5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL1woKFxTKnxcUypcc1xTKilcKS8pWzFdLnNwbGl0KC8gfCwvKTsNCiAgICB2YXIgeD1wYXJzZUZsb2F0KGNzWzBdKStwYXJzZUZsb2F0KHBzWzBdKTsNCiAgICB2YXIgeT1wYXJzZUZsb2F0KHBzWzFdKTsNCiAgICB4PXgudG9zdWl0c3ZnKCk7DQogICAgeT15LnRvc3VpdHN2ZygpOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywndHJhbnNsYXRlKCcreCsnLCcreSsnKScpOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnY29tbWVudCcsJycpOw0KICAgIHBvcHVwLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnZWQ6Y29tbWVudGlkJyxjb21tZW50c1tpXS5wYXJlbnROb2RlLmlkKTsNCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3ZnLWNvbnRhaW5lciA+IHN2ZycpLmFwcGVuZENoaWxkKHBvcHVwKTsNCiAgICBjb21tZW50c1tpXS5vbm1vdXNlb3Zlcj1mdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBjb21tZW50aWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3JlY3QnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7DQogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDpjb21tZW50aWQ9JyIrY29tbWVudGlkKyInXVtjb21tZW50XSIpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsNCiAgICB9Ow0KICAgIGNvbW1lbnRzW2ldLm9ubW91c2VvdXQ9ZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgY29tbWVudGlkPXRoaXMucGFyZW50Tm9kZS5pZDsNCi8vICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7DQogICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigncmVjdCcpLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJnW2VkXFw6Y29tbWVudGlkPSciK2NvbW1lbnRpZCsiJ11bY29tbWVudF0iKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICB9DQp9DQovLy0tY29tbWVudA0KLy9ub3RlLS0NCmlmKCF1YSl7DQogICAgdmFyIG5vdGVzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2c+Z1tlZFxcOm5vdGVdJyk7DQogICAgZnVuY3Rpb24gZ2V0d2gocyxwKSB7DQogICAgICAgIHZhciBtYWlucD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgbWFpbnAuc3R5bGUuY3NzVGV4dD1zOw0KICAgICAgICBtYWlucC5zdHlsZS5kaXNwbGF5PSdpbmxpbmUtYmxvY2snOw0KICAgICAgICBtYWlucC5pbm5lckhUTUw9cDsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtYWlucCk7DQogICAgICAgIHZhciB3PW1haW5wLmNsaWVudFdpZHRoOw0KICAgICAgICB2YXIgaD1tYWlucC5jbGllbnRIZWlnaHQ7DQogICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobWFpbnApOw0KICAgICAgICByZXR1cm4gW3csaF0NCiAgICB9DQogICAgZm9yKHZhciBpPTA7aTxub3Rlcy5sZW5ndGg7aSsrKXsNCiAgICAgICAgdmFyIGE9bm90ZXNbaV0uZ2V0QXR0cmlidXRlKCdlZDpub3RlJyk7DQogICAgICAgIHZhciBtYWlucD1hLm1hdGNoKC88cChbXFNcc10qKTxcL3A+L2cpWzBdOw0KICAgICAgICB2YXIgbWFpbnM9YS5tYXRjaCgvc3R5bGU9IiguKj8pIi8pWzFdOw0KICAgICAgICB2YXIgb3V0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCdnJyk7DQogICAgICAgIHZhciBvbGluZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgICAgICB2YXIgcG9wdXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ2ZvcmVpZ25PYmplY3QnKTsNCiAgICAgICAgdmFyIGhvdmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCdyZWN0Jyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnZmlsbCcsJyNjZGNkZmYnKTsNCiAgICAgICAgaG92ZXIuc2V0QXR0cmlidXRlKCd4JywnMCcpOw0KICAgICAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3knLCcwJyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywnMTYnKTsNCiAgICAgICAgaG92ZXIuc2V0QXR0cmlidXRlKCd3aWR0aCcsJzE2Jyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgnZmlsbC1vcGFjaXR5JywnMC42Jyk7DQogICAgICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJyxub3Rlc1tpXS5xdWVyeVNlbGVjdG9yKCd1c2UnKS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpKTsNCiAgICAgICAgaG92ZXIuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgICAgIG5vdGVzW2ldLmFwcGVuZENoaWxkKGhvdmVyKTsNCiAgICAgICAgcG9wdXAuc3R5bGUuY3NzVGV4dD1tYWluczsNCiAgICAgICAgcG9wdXAuaW5uZXJIVE1MPW1haW5wOw0KICAgICAgICB2YXIgd2g9Z2V0d2gobWFpbnMsbWFpbnApOw0KICAgICAgICBwb3B1cC5zZXRBdHRyaWJ1dGUoJ3dpZHRoJyx3aFswXSsxNik7DQogICAgICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnaGVpZ2h0Jyx3aFsxXSs4KTsNCiAgICAgICAgcG9wdXAuc2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nLCd0cmFuc2xhdGUoOCw0KScpOw0KICAgICAgICBwb3B1cC5zdHlsZS50ZXh0QWxpZ249J2xlZnQnOw0KICAgICAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ3gnLCcwJyk7DQogICAgICAgIG9saW5lLnNldEF0dHJpYnV0ZSgneScsJzAnKTsNCiAgICAgICAgb2xpbmUuc2V0QXR0cmlidXRlKCd3aWR0aCcsd2hbMF0rMTYpOw0KICAgICAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsd2hbMV0rOCk7DQogICAgICAgIG9saW5lLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywnI2EyN2EwMCcpOw0KICAgICAgICBvbGluZS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCcjZmZlNzlkJyk7DQogICAgICAgIG91dC5hcHBlbmRDaGlsZChvbGluZSk7DQogICAgICAgIG91dC5hcHBlbmRDaGlsZChwb3B1cCk7DQogICAgICAgIG91dC5zZXRBdHRyaWJ1dGUoJ25vdGUnLCcnKTsNCiAgICAgICAgb3V0LnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgICAgICBvdXQuc2V0QXR0cmlidXRlKCdlZDpub3RlaWQnLG5vdGVzW2ldLnBhcmVudE5vZGUuaWQpOw0KICAgICAgICBvdXQub25tb3VzZW92ZXI9ZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdGhpcy5zdHlsZS5kaXNwbGF5PSdibG9jayc7DQogICAgICAgIH07DQogICAgICAgIG91dC5vbm1vdXNlb3V0PWZ1bmN0aW9uICgpIHsNCi8vICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uID8gd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZVJhbmdlKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZSk6ZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7DQoNCiAgICAgICAgICAgIHRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgICAgIH07DQogICAgICAgIHZhciBjcz1ub3Rlc1tpXS5xdWVyeVNlbGVjdG9yKCd1c2UnKS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpLm1hdGNoKC9cKChcUyp8XFMqXHNcUyopXCkvKVsxXS5zcGxpdCgvIHwsLyk7DQogICAgICAgIHZhciBwcz1ub3Rlc1tpXS5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL1woKFxTKnxcUypcc1xTKilcKS8pWzFdLnNwbGl0KC8gfCwvKTsNCiAgICAgICAgdmFyIHg9cGFyc2VGbG9hdChjc1swXSkrcGFyc2VGbG9hdChwc1swXSk7DQogICAgICAgIHZhciB5PXBhcnNlRmxvYXQocHNbMV0pOw0KICAgICAgICB4PXgudG9zdWl0c3ZnKCk7DQogICAgICAgIHk9eS50b3N1aXRzdmcoKTsNCiAgICAgICAgb3V0LnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywndHJhbnNsYXRlKCcreCsnLCcreSsnKScpOw0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3ZnLWNvbnRhaW5lciA+IHN2ZycpLmFwcGVuZENoaWxkKG91dCk7DQogICAgICAgIG5vdGVzW2ldLm9ubW91c2VvdmVyPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhciBub3RlaWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KICAgICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdyZWN0Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOw0KICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOm5vdGVpZD0nIitub3RlaWQrIiddW25vdGVdIikuc3R5bGUuZGlzcGxheT0nYmxvY2snOw0KICAgICAgICB9Ow0KICAgICAgICBub3Rlc1tpXS5vbm1vdXNlb3V0PWZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHZhciBub3RlaWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KLy8gICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsNCiAgICAgICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigncmVjdCcpLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOm5vdGVpZD0nIitub3RlaWQrIiddW25vdGVdIikuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgICAgIH0NCiAgICB9DQp9ZWxzZXsNCiAgICBjb25zb2xlLmxvZygn5oqx5q2J77yMSUXmtY/op4jlmajkuI3mlK/mjIFub3Rl6Kej5p6Q77yM6K+35L2/55So5YW25LuW5YaF5qC45rWP6KeI5Zmo44CC6LCi6LCi77yBJykNCn0NCi8vLS1ub3RlDQovL2h5cGVybGluay0tDQp2YXIgbGlua3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZz5nW2VkXFw6aHlwZXJsaW5rXScpOw0KZnVuY3Rpb24gZ2V0bWF4bGVuKGFycixicnIpIHsNCiAgICB2YXIgbD0wOw0KICAgIHZhciBsbD0wOw0KICAgIGZvcih2YXIgaj0wO2o8YXJyLmxlbmd0aDtqKyspew0KICAgICAgICB2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICBpZighaXNOYU4obGlua2FycltqXSkpew0KICAgICAgICAgICAgZS50ZXh0Q29udGVudD0nUGFnZS0nK2FycltqXTsNCiAgICAgICAgfWVsc2V7DQogICAgICAgICAgICBlLnRleHRDb250ZW50PWFycltqXTsNCiAgICAgICAgfQ0KICAgICAgICBlLnN0eWxlLmZvbnRTaXplPScxMnB4JzsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0uYXBwZW5kQ2hpbGQoZSk7DQogICAgICAgIHZhciBldz1lLmdldEJCb3goKS53aWR0aDsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0ucmVtb3ZlQ2hpbGQoZSk7DQogICAgICAgIHZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCd0ZXh0Jyk7DQogICAgICAgIGgudGV4dENvbnRlbnQ9YnJyW2pdOw0KICAgICAgICBoLnN0eWxlLmZvbnRTaXplPScxMnB4JzsNCiAgICAgICAgaC5zdHlsZS5mb250V2VpZ2h0PSdib2xkJzsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0uYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIHZhciBodz1oLmdldEJCb3goKS53aWR0aDsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3ZnJylbMF0ucmVtb3ZlQ2hpbGQoaCk7DQogICAgICAgIGw9ZXc+aHc/ZXc6aHc7DQogICAgICAgIGxsPWw+bGw/bDpsbDsNCiAgICB9DQogICAgcmV0dXJuIGxsOw0KfQ0KZm9yKHZhciBpPTA7aTxsaW5rcy5sZW5ndGg7aSsrKXsNCiAgICB2YXIgcG9wdXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ2cnKTsNCiAgICB2YXIgaG92ZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsJ3JlY3QnKTsNCiAgICB2YXIgZGVzY2Fycj1bXTsNCiAgICB2YXIgbGlua2Fycj1bXTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCcjY2RjZGZmJyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCd4JywnMCcpOw0KICAgIGhvdmVyLnNldEF0dHJpYnV0ZSgneScsJzAnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsJzE2Jyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCd3aWR0aCcsJzE2Jyk7DQogICAgaG92ZXIuc2V0QXR0cmlidXRlKCdmaWxsLW9wYWNpdHknLCcwLjYnKTsNCiAgICBob3Zlci5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsbGlua3NbaV0ucXVlcnlTZWxlY3RvcigndXNlJykuZ2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nKSk7DQogICAgaG92ZXIuc3R5bGUuZGlzcGxheT0nbm9uZSc7DQogICAgbGlua3NbaV0uYXBwZW5kQ2hpbGQoaG92ZXIpOw0KICAgIC8vIGNvbnNvbGUubG9nKGxpbmtzW2ldLmdldEF0dHJpYnV0ZSgnZWQ6aHlwZXJsaW5rJykpOw0KICAgIHZhciBhPUpTT04ucGFyc2UobGlua3NbaV0uZ2V0QXR0cmlidXRlKCdlZDpoeXBlcmxpbmsnKSk7DQogICAgdmFyIGNzPWxpbmtzW2ldLnF1ZXJ5U2VsZWN0b3IoJ3VzZScpLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL1woKFxTKnxcUypcc1xTKilcKS8pWzFdLnNwbGl0KC8gfCwvKTsNCiAgICB2YXIgcHM9bGlua3NbaV0ucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpLm1hdGNoKC9cKChcUyp8XFMqXHNcUyopXCkvKVsxXS5zcGxpdCgvIHwsLyk7DQogICAgdmFyIHg9cGFyc2VGbG9hdChjc1swXSkrcGFyc2VGbG9hdChwc1swXSk7DQogICAgdmFyIHk9cGFyc2VGbG9hdChwc1sxXSk7DQogICAgeD14LnRvc3VpdHN2ZygpOw0KICAgIHk9eS50b3N1aXRzdmcoKTsNCiAgICB2YXIgYWw9YS5sZW5ndGg7DQogICAgZm9yKHZhciBqPTA7ajxhbDtqKyspew0KICAgICAgICBsaW5rYXJyLnB1c2goYVtqXS5saW5rKTsNCiAgICAgICAgZGVzY2Fyci5wdXNoKGFbal0uZGVzYyk7DQogICAgfQ0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywndHJhbnNsYXRlKCcreCsnLCcreSsnKScpOw0KICAgIHZhciBtYXg9Z2V0bWF4bGVuKGxpbmthcnIsZGVzY2Fycik7DQogICAgZm9yKHZhciBrPTA7azxhbDtrKyspew0KICAgICAgICB2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywnYScpOw0KICAgICAgICB2YXIgZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywncmVjdCcpOw0KICAgICAgICB2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICB2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywndGV4dCcpOw0KICAgICAgICBpZihpc05hTihsaW5rYXJyW2tdKSl7DQogICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgnaHJlZicsbGlua2FycltrXSk7DQogICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywnX2JsYW5rJyk7DQogICAgICAgICAgICBlLnRleHRDb250ZW50PWxpbmthcnJba107DQogICAgICAgIH1lbHNlew0KICAgICAgICAgICAgZS50ZXh0Q29udGVudD0nUGFnZS0nK2xpbmthcnJba107DQogICAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgnaHJlZicsJyMnK2xpbmthcnJba10pOw0KICAgICAgICB9DQogICAgICAgIGQuc2V0QXR0cmlidXRlKCd3aWR0aCcsbWF4KzEwKTsNCiAgICAgICAgZC5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsJzMzJyk7DQogICAgICAgIGQuc2V0QXR0cmlidXRlKCdzdHJva2UnLCcjOTk5OTk5Jyk7DQogICAgICAgIGQuc2V0QXR0cmlidXRlKCdmaWxsJywnd2hpdGUnKTsNCiAgICAgICAgZC5zZXRBdHRyaWJ1dGUoJ3knLDMzKmspOw0KICAgICAgICBmLnRleHRDb250ZW50PWRlc2NhcnJba107DQogICAgICAgIGYuc3R5bGUuZm9udFNpemU9JzEycHgnOw0KICAgICAgICBmLnN0eWxlLmZvbnRXZWlnaHQ9J2JvbGQnOw0KICAgICAgICBmLnNldEF0dHJpYnV0ZSgneCcsNSk7DQogICAgICAgIGYuc2V0QXR0cmlidXRlKCd5JywzMyprKzEyKTsNCiAgICAgICAgZS5zdHlsZS5mb250U2l6ZT0nMTJweCc7DQogICAgICAgIGUuc2V0QXR0cmlidXRlKCd5JywzMyprKzI4KTsNCiAgICAgICAgZS5zZXRBdHRyaWJ1dGUoJ3gnLDUpOw0KICAgICAgICBjLmFwcGVuZENoaWxkKGQpOw0KICAgICAgICBjLmFwcGVuZENoaWxkKGYpOw0KICAgICAgICBjLmFwcGVuZENoaWxkKGUpOw0KICAgICAgICBjLm9ubW91c2VvdmVyPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHRoaXMucXVlcnlTZWxlY3RvcigncmVjdCcpLnN0eWxlLmZpbGw9JyNlMWUxZmYnDQogICAgICAgIH07DQogICAgICAgIGMub25tb3VzZW91dD1mdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3JlY3QnKS5zdHlsZS5maWxsPSd3aGl0ZScNCiAgICAgICAgfTsNCiAgICAgICAgcG9wdXAuYXBwZW5kQ2hpbGQoYyk7DQogICAgfQ0KICAgIHBvcHVwLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgIHBvcHVwLnNldEF0dHJpYnV0ZSgnaHlwZXJsaW5rJywnJyk7DQogICAgcG9wdXAuc2V0QXR0cmlidXRlKCdlZDpsaW5raWQnLGxpbmtzW2ldLnBhcmVudE5vZGUuaWQpOw0KICAgIHBvcHVwLm9ubW91c2VvdmVyPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgdGhpcy5zdHlsZS5kaXNwbGF5PSdibG9jayc7DQogICAgfTsNCiAgICBwb3B1cC5vbmNsaWNrPWZ1bmN0aW9uICgpIHsNCiAgICAgICAgdGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICB9Ow0KICAgIHBvcHVwLm9ubW91c2VvdXQ9ZnVuY3Rpb24gKCkgew0KICAgICAgICB0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOw0KICAgIH07DQogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3N2Zy1jb250YWluZXIgPiBzdmcnKS5hcHBlbmRDaGlsZChwb3B1cCk7DQogICAgbGlua3NbaV0ub25tb3VzZW92ZXI9ZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgbGlua2lkPXRoaXMucGFyZW50Tm9kZS5pZDsNCiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdyZWN0Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOw0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJnW2VkXFw6bGlua2lkPSciK2xpbmtpZCsiJ11baHlwZXJsaW5rXSIpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsNCiAgICB9DQogICAgbGlua3NbaV0ub25tb3VzZW91dD1mdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBsaW5raWQ9dGhpcy5wYXJlbnROb2RlLmlkOw0KICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3JlY3QnKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOmxpbmtpZD0nIitsaW5raWQrIiddW2h5cGVybGlua10iKS5zdHlsZS5kaXNwbGF5PSdub25lJzsNCiAgICB9DQp9DQovLy0taHlwZXJsaW5rDQovL2luaXRpYWxpemUtLQ0KdmFyIHNoYXBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2dbZWRcXDp0b2d0b3BpY2lkXScpOw0KdmFyIG1JZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdnW2VkXFw6dG9waWN0eXBlXScpOw0KdmFyIGRhdGFUcmVlPXt9Ow0KdmFyIGV4dHJhUmVsYT17fTsNCnZhciBjaGVja0lEPScnOw0KZm9yKHZhciBpPTA7aTxtSWQubGVuZ3RoO2krKyl7DQogICAgdmFyIHR5cGU9bUlkW2ldLmdldEF0dHJpYnV0ZSgnZWQ6dG9waWN0eXBlJyk7DQogICAgdmFyIHNpZD1tSWRbaV0uaWQ7DQogICAgaWYodHlwZSE9PSdjYWxsb3V0Jyl7DQogICAgICAgIGluaXQoc2lkLGRhdGFUcmVlKQ0KICAgIH0NCn0NCmZ1bmN0aW9uIGluaXQoaWQsIG9iaikgew0KICAgIHZhciBjaGlsZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJnW2VkXFw6cGFyZW50aWQ9JyIgKyBpZCArICInXTpub3QoW2VkXFw6dG9waWN0eXBlXSkiKTsNCiAgICB2YXIgY2FsbHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJnW2VkXFw6cGFyZW50aWQ9JyIgKyBpZCArICInXVtlZFxcOnRvcGljdHlwZV0iKTsNCiAgICB2YXIgc3VtbWFyeSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInBhdGhbZWRcXDpwYXJlbnRpZCo9JyIgKyBpZCArICInXVtlZFxcOnR5cGU9J3N1bW1hcnknXSIpOw0KICAgIHZhciBib3VuZGFyeT0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgicGF0aFtlZFxcOnBhcmVudGlkKj0nIiArIGlkICsgIiddW2VkXFw6dHlwZT0nYm91bmRhcnknXSIpOw0KICAgIHZhciByZWxhZnJvbT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJnW2VkXFw6ZnJvbWlkKj0nIiArIGlkICsgIiddW2VkXFw6dHlwZT0ncmVsYXRpb24nXSIpOw0KICAgIHZhciByZWxhdG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZ1tlZFxcOnRvaWQqPSciICsgaWQgKyAiJ11bZWRcXDp0eXBlPSdyZWxhdGlvbiddIik7DQogICAgb2JqWyJtIiArIGlkXSA9IHt9Ow0KICAgIHZhciB0eXBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmdldEF0dHJpYnV0ZSgnZWQ6dG9waWN0eXBlJyk7DQogICAgdmFyIGl3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5nZXRBdHRyaWJ1dGUoJ2VkOndpZHRoJyk7DQogICAgdmFyIGloPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5nZXRBdHRyaWJ1dGUoJ2VkOmhlaWdodCcpOw0KICAgIGlmICh0eXBlKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0udHlwZSA9IHR5cGU7DQogICAgfQ0KICAgIGlmKGl3JiZpaCl7DQogICAgICAgIG9ialsibSIgKyBpZF0ud2lkdGggPWl3Ow0KICAgICAgICBvYmpbIm0iICsgaWRdLmhlaWdodCA9aWg7DQogICAgfQ0KICAgIGlmIChyZWxhZnJvbS5sZW5ndGggIT09IDApIHsNCiAgICAgICAgb2JqWyJtIiArIGlkXS5yZWxhZnJvbSA9IHt9Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbGFmcm9tLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgaW5kZXhpZCA9IHJlbGFmcm9tW2ldLmlkOw0KICAgICAgICAgICAgdmFyIHRvaWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbmRleGlkKS5nZXRBdHRyaWJ1dGUoJ2VkOnRvaWQnKTsNCiAgICAgICAgICAgIGlmIChleHRyYVJlbGFbaW5kZXhpZF0gPT09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtpbmRleGlkXSA9IHsNCiAgICAgICAgICAgICAgICAgICAgaWQ6IGluZGV4aWQsDQogICAgICAgICAgICAgICAgICAgIGZyb21pZDogaWQsDQogICAgICAgICAgICAgICAgICAgIHRvaWQ6IHRvaWQsDQogICAgICAgICAgICAgICAgICAgIGlzQzogZmFsc2UNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgb2JqWyJtIiArIGlkXS5yZWxhZnJvbVtpbmRleGlkXT17fTsNCiAgICAgICAgICAgIG9ialsibSIgKyBpZF0ucmVsYWZyb20uZGlzcGxheT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnPydibG9jayc6J25vbmUnOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmIChyZWxhdG8ubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0ucmVsYXRvID0ge307DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVsYXRvLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgaW5kZXhpZD1yZWxhdG9baV0uaWQ7DQogICAgICAgICAgICB2YXIgZnJvbWlkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGluZGV4aWQpLmdldEF0dHJpYnV0ZSgnZWQ6ZnJvbWlkJyk7DQogICAgICAgICAgICBpZihleHRyYVJlbGFbaW5kZXhpZF0gPT09IHVuZGVmaW5lZCl7DQogICAgICAgICAgICAgICAgZXh0cmFSZWxhW2luZGV4aWRdPXsNCiAgICAgICAgICAgICAgICAgICAgaWQ6aW5kZXhpZCwNCiAgICAgICAgICAgICAgICAgICAgZnJvbWlkOmZyb21pZCwNCiAgICAgICAgICAgICAgICAgICAgdG9pZDppZCwNCiAgICAgICAgICAgICAgICAgICAgaXNDOmZhbHNlDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9ialsibSIgKyBpZF0ucmVsYXRvW2luZGV4aWRdPXt9Ow0KICAgICAgICAgICAgb2JqWyJtIiArIGlkXS5yZWxhdG8uZGlzcGxheT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnPydibG9jayc6J25vbmUnOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmIChjaGlsZHMubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uY2hpbGQgPSB7fTsNCiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciICsgaWQgKyAiJ10iKSkgew0KICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOnRvZ3RvcGljaWQ9JyIgKyBpZCArICInXSIpLmNoaWxkTm9kZXNbMF0uZ2V0QXR0cmlidXRlKCd4bGluazpocmVmJykpOw0KICAgICAgICAgICAgdmFyIHRvZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciICsgaWQgKyAiJ10iKS5jaGlsZHJlblswXS5nZXRBdHRyaWJ1dGUoJ3hsaW5rOmhyZWYnKS5zbGljZSgxKTsNCiAgICAgICAgICAgIG9ialsibSIgKyBpZF0udG9ndHlwZSA9IHRvZzsNCiAgICAgICAgfQ0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIGNpZCA9IGNoaWxkc1tpXS5pZDsNCiAgICAgICAgICAgIGluaXQoY2lkLCBvYmpbIm0iICsgaWRdLmNoaWxkKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoY2FsbHMubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uY2FsbCA9IHt9Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgY2lkID0gY2FsbHNbaV0uaWQ7DQogICAgICAgICAgICBpbml0KGNpZCwgb2JqWyJtIiArIGlkXS5jYWxsKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoYm91bmRhcnkubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uYm91bmRhcnkgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib3VuZGFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIGNpZCA9Ym91bmRhcnlbaV0uaWQ7DQogICAgICAgICAgICBpbml0KGNpZCwgb2JqWyJtIiArIGlkXS5ib3VuZGFyeSk7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKHN1bW1hcnkubGVuZ3RoICE9PSAwKSB7DQogICAgICAgIG9ialsibSIgKyBpZF0uc3VtbWFyeSA9IHt9Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN1bW1hcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBjaWQgPSBzdW1tYXJ5W2ldLmlkOw0KICAgICAgICAgICAgaW5pdChjaWQsIG9ialsibSIgKyBpZF0uc3VtbWFyeSk7DQogICAgICAgIH0NCiAgICB9DQp9DQovLy0taW5pdGlhbGl6ZQ0KLy90b2dnbGVkaXNwbGF5LS0NCnZhciBjaGFpbkFycj1bXTsNCmZ1bmN0aW9uIGdldGNoYWluKGlkKXsNCiAgICBjaGFpbkFyci51bnNoaWZ0KCdtJytpZCk7DQogICAgdmFyIHBhcmVudD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuZ2V0QXR0cmlidXRlKCdlZDpwYXJlbnRpZCcpOw0KICAgIGlmKCFwYXJlbnQpew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGdldGNoYWluKHBhcmVudCk7DQp9DQpmdW5jdGlvbiBnZXRvYmooaWQpIHsNCiAgICBjaGFpbkFycj1bXTsNCiAgICBnZXRjaGFpbihpZCk7DQogICAgdmFyIG1haW49Y2hhaW5BcnJbMF07DQogICAgaWYoY2hhaW5BcnIubGVuZ3RoPjEpew0KICAgICAgICB2YXIgb2JqPWRhdGFUcmVlW21haW5dOw0KICAgICAgICAvLyBjb25zb2xlLmxvZyhjaGFpbkFycik7DQogICAgICAgIGZvcih2YXIgaT0xO2k8Y2hhaW5BcnIubGVuZ3RoO2krKykgew0KICAgICAgICAgICAgdmFyIGEgPSBjaGFpbkFycltpXTsNCiAgICAgICAgICAgIGZvcih2YXIgaj0wO2o8T2JqZWN0LmtleXMob2JqKS5sZW5ndGg7aisrKXsNCiAgICAgICAgICAgICAgICB2YXIgY29iaj0gb2JqW09iamVjdC5rZXlzKG9iailbal1dW2FdOw0KICAgICAgICAgICAgICAgIGlmKGNvYmopew0KICAgICAgICAgICAgICAgICAgICBvYmo9Y29iajsNCiAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIG9iag0KICAgIH1lbHNlew0KICAgICAgICB2YXIgb2JqPWRhdGFUcmVlW21haW5dOw0KICAgICAgICByZXR1cm4gb2JqDQogICAgfQ0KDQp9DQpmb3IodmFyIGk9MDtpPHNoYXBlLmxlbmd0aDtpKyspew0KICAgIHNoYXBlW2ldLm9uY2xpY2s9ZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgaWQ9TnVtYmVyKHRoaXMuZ2V0QXR0cmlidXRlKCdlZDp0b2d0b3BpY2lkJykpOw0KICAgICAgICB2YXIgb2JqPWdldG9iaihpZCk7DQoNCiAgICAgICAgdmFyIHR5cGU9b2JqLnRvZ3R5cGU9PT0nbWludXMnPydwbHVzJzonbWludXMnOw0KICAgICAgICB2YXIgZGlzcGxheT1vYmoudG9ndHlwZT09PSdtaW51cyc/J25vbmUnOidibG9jayc7DQogICAgICAgIHRoaXMuY2hpbGRyZW5bMF0uc2V0QXR0cmlidXRlKCd4bGluazpocmVmJywnIycrdHlwZSk7DQogICAgICAgIG9iai50b2d0eXBlPXR5cGU7DQogICAgICAgIGNoZWNrSUQ9b2JqOw0KDQogICAgICAgIHV0ZChvYmosaWQsZGlzcGxheSk7DQogICAgICAgIGV4dHJhUmVsYUZpbigpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHV0ZChvYmosaWQsc2hvdyxvYykgew0KDQogICAgdmFyIHBzaG93PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5IT09ICdub25lJz8nYmxvY2snOidub25lJzsNCiAgICBpZiAob2JqLnJlbGFmcm9tKXsNCiAgICAgICAgaWYob2JqLnJlbGFmcm9tLmRpc3BsYXkhPT0gcHNob3cpew0KICAgICAgICAgICAgdmFyIHJlbGFmcm9tcz1PYmplY3Qua2V5cyhvYmoucmVsYWZyb20pOw0KICAgICAgICAgICAgcmVsYWZyb21zLnNwbGljZShyZWxhZnJvbXMuaW5kZXhPZignZGlzcGxheScpLDEpOw0KICAgICAgICAgICAgZm9yKHZhciBrPTA7azxyZWxhZnJvbXMubGVuZ3RoO2srKyl7DQogICAgICAgICAgICAgICAgdmFyIGQ9cmVsYWZyb21zW2tdOw0KICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtkXS5pc0M9dHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9iai5yZWxhZnJvbS5kaXNwbGF5ID0gcHNob3c7DQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKG9iai5yZWxhdG8pew0KICAgICAgICBpZihvYmoucmVsYXRvLmRpc3BsYXkhPT0gcHNob3cpew0KICAgICAgICAgICAgdmFyIHJlbGF0b3M9T2JqZWN0LmtleXMob2JqLnJlbGF0byk7DQogICAgICAgICAgICByZWxhdG9zLnNwbGljZShyZWxhdG9zLmluZGV4T2YoJ2Rpc3BsYXknKSwxKTsNCiAgICAgICAgICAgIGZvcih2YXIgaz0wO2s8cmVsYXRvcy5sZW5ndGg7aysrKXsNCiAgICAgICAgICAgICAgICB2YXIgZD1yZWxhdG9zW2tdOw0KICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtkXS5pc0M9dHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIG9iai5yZWxhdG8uZGlzcGxheSA9IHBzaG93Ow0KICAgICAgICB9DQogICAgfQ0KICAgIGlmKG9iai5jYWxsKXsNCiAgICAgICAgdmFyIGNhbGxzPU9iamVjdC5rZXlzKG9iai5jYWxsKTsNCiAgICAgICAgaWYoY2hlY2tJRCE9PW9iail7DQogICAgICAgICAgICBmb3IodmFyIGk9MDtpIDwgY2FsbHMubGVuZ3RoO2krKyl7DQogICAgICAgICAgICAgICAgdmFyIGE9Y2FsbHNbaV0uc2xpY2UoMSk7DQogICAgICAgICAgICAgICAgdmFyIGI9b2JqLmNhbGxbY2FsbHNbaV1dOw0KICAgICAgICAgICAgICAgIHZhciBjPWIudG9ndHlwZTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKS5zdHlsZS5kaXNwbGF5PXNob3c7DQogICAgICAgICAgICAgICAgaWYgKGIucmVsYWZyb20mJiFjKXsNCiAgICAgICAgICAgICAgICAgICAgaWYoYi5yZWxhZnJvbS5kaXNwbGF5IT09IHNob3cpew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGFmcm9tcz1PYmplY3Qua2V5cyhiLnJlbGFmcm9tKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGFmcm9tcy5zcGxpY2UocmVsYWZyb21zLmluZGV4T2YoJ2Rpc3BsYXknKSwxKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcih2YXIgaz0wO2s8cmVsYWZyb21zLmxlbmd0aDtrKyspew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkPXJlbGFmcm9tc1trXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlbGFbZF0uaXNDPXRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBiLnJlbGFmcm9tLmRpc3BsYXkgPSBzaG93Ow0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChiLnJlbGF0byYmIWMpew0KICAgICAgICAgICAgICAgICAgICBpZihiLnJlbGF0by5kaXNwbGF5IT09IHNob3cpew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGF0b3M9T2JqZWN0LmtleXMoYi5yZWxhdG8pOw0KICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRvcy5zcGxpY2UocmVsYXRvcy5pbmRleE9mKCdkaXNwbGF5JyksMSk7DQogICAgICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGs9MDtrPHJlbGF0b3MubGVuZ3RoO2srKyl7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQ9cmVsYXRvc1trXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlbGFbZF0uaXNDPXRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBiLnJlbGF0by5kaXNwbGF5ID0gc2hvdzsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihjKXsNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZ1tlZFxcOnRvZ3RvcGljaWQ9JyIrYSsiJ10iKS5zdHlsZS5kaXNwbGF5PXNob3c7DQogICAgICAgICAgICAgICAgICAgIGlmKGM9PT0nbWludXMnKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdykNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoKGIuY2FsbHx8Yi5ib3VuZGFyeXx8Yi5zdW1tYXJ5KSYmYz09PSdwbHVzJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93LHRydWUpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYoYi5jYWxsJiYhYykgew0KICAgICAgICAgICAgICAgICAgICB1dGQoYixhLHNob3csdHJ1ZSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKGIuc3VtbWFyeSYmIWMpIHsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoYi5ib3VuZGFyeSYmIWMpIHsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIGlmKG9iai5zdW1tYXJ5KXsNCiAgICAgICAgdmFyIHN1bW1hcnlzPU9iamVjdC5rZXlzKG9iai5zdW1tYXJ5KTsNCiAgICAgICAgaWYoKGNoZWNrSUQhPT1vYmomJihvYmoudG9ndHlwZT09PSdtaW51cyd8fCFvYmoudG9ndHlwZSkpfHxjaGVja0lEPT09b2JqKXsNCiAgICAgICAgICAgIGZvcih2YXIgaT0wO2k8c3VtbWFyeXMubGVuZ3RoO2krKyl7DQogICAgICAgICAgICAgICAgdmFyIGE9c3VtbWFyeXNbaV0uc2xpY2UoMSk7DQogICAgICAgICAgICAgICAgdmFyIGI9b2JqLnN1bW1hcnlbc3VtbWFyeXNbaV1dOw0KICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGEpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLnN0eWxlLmRpc3BsYXk9c2hvdzsNCi8vICAgICAgICAgICAgICAgIGlmKGMpew0KLy8gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciK2ErIiddIikuc3R5bGUuZGlzcGxheT1zaG93Ow0KLy8gICAgICAgICAgICAgICAgICAgIGlmKGM9PT0nbWludXMnKXsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgdXRkKGIsc2hvdykNCi8vICAgICAgICAgICAgICAgICAgICB9DQovLyAgICAgICAgICAgICAgICAgICAgaWYgKGIuY2FsbCYmYz09PSdwbHVzJykgew0KLy8gICAgICAgICAgICAgICAgICAgICAgICB1dGQoYixzaG93LHRydWUpDQovLyAgICAgICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgaWYoYi5jYWxsJiYhYykgew0KLy8gICAgICAgICAgICAgICAgICAgIHV0ZChiLHNob3csdHJ1ZSkNCi8vICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihPYmplY3Qua2V5cyhiKS5sZW5ndGghPT0wKXsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZihvYmouYm91bmRhcnkpew0KICAgICAgICB2YXIgYm91bmRhcnlzPU9iamVjdC5rZXlzKG9iai5ib3VuZGFyeSk7DQogICAgICAgIGlmKGNoZWNrSUQhPT1vYmopew0KICAgICAgICAgICAgZm9yKHZhciBpPTA7aTxib3VuZGFyeXMubGVuZ3RoO2krKyl7DQogICAgICAgICAgICAgICAgdmFyIGE9Ym91bmRhcnlzW2ldLnNsaWNlKDEpOw0KICAgICAgICAgICAgICAgIHZhciBiPW9iai5ib3VuZGFyeVtib3VuZGFyeXNbaV1dOw0KICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGEpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLnN0eWxlLmRpc3BsYXk9c2hvdzsNCi8vICAgICAgICAgICAgICAgIGlmKGMpew0KLy8gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImdbZWRcXDp0b2d0b3BpY2lkPSciK2ErIiddIikuc3R5bGUuZGlzcGxheT1zaG93Ow0KLy8gICAgICAgICAgICAgICAgICAgIGlmKGM9PT0nbWludXMnKXsNCi8vICAgICAgICAgICAgICAgICAgICAgICAgdXRkKGIsc2hvdykNCi8vICAgICAgICAgICAgICAgICAgICB9DQovLyAgICAgICAgICAgICAgICAgICAgaWYgKGIuY2FsbCYmYz09PSdwbHVzJykgew0KLy8gICAgICAgICAgICAgICAgICAgICAgICB1dGQoYixzaG93LHRydWUpDQovLyAgICAgICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgfQ0KLy8gICAgICAgICAgICAgICAgaWYoYi5jYWxsJiYhYykgew0KLy8gICAgICAgICAgICAgICAgICAgIHV0ZChiLHNob3csdHJ1ZSkNCi8vICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZihPYmplY3Qua2V5cyhiKS5sZW5ndGghPT0wKXsNCiAgICAgICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZighb2MmJm9iai5jaGlsZCkgew0KICAgICAgICB2YXIgY2hpbGRzID0gT2JqZWN0LmtleXMob2JqLmNoaWxkKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBhID0gY2hpbGRzW2ldLnNsaWNlKDEpOw0KICAgICAgICAgICAgdmFyIGIgPSBvYmouY2hpbGRbY2hpbGRzW2ldXTsNCiAgICAgICAgICAgIHZhciBjID0gYi50b2d0eXBlOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkuc3R5bGUuZGlzcGxheSA9IHNob3c7DQogICAgICAgICAgICBpZiAoYi5yZWxhZnJvbSYmIWMpew0KICAgICAgICAgICAgICAgIGlmKGIucmVsYWZyb20uZGlzcGxheSE9PSBzaG93KXsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHJlbGFmcm9tcz1PYmplY3Qua2V5cyhiLnJlbGFmcm9tKTsNCiAgICAgICAgICAgICAgICAgICAgcmVsYWZyb21zLnNwbGljZShyZWxhZnJvbXMuaW5kZXhPZignZGlzcGxheScpLDEpOw0KICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGs9MDtrPHJlbGFmcm9tcy5sZW5ndGg7aysrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkPXJlbGFmcm9tc1trXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhUmVsYVtkXS5pc0M9dHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBiLnJlbGFmcm9tLmRpc3BsYXkgPSBzaG93Ow0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChiLnJlbGF0byYmIWMpew0KICAgICAgICAgICAgICAgIGlmKGIucmVsYXRvLmRpc3BsYXkhPT0gc2hvdyl7DQogICAgICAgICAgICAgICAgICAgIHZhciByZWxhdG9zPU9iamVjdC5rZXlzKGIucmVsYXRvKTsNCiAgICAgICAgICAgICAgICAgICAgcmVsYXRvcy5zcGxpY2UocmVsYXRvcy5pbmRleE9mKCdkaXNwbGF5JyksMSk7DQogICAgICAgICAgICAgICAgICAgIGZvcih2YXIgaz0wO2s8cmVsYXRvcy5sZW5ndGg7aysrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkPXJlbGF0b3Nba107DQogICAgICAgICAgICAgICAgICAgICAgICBleHRyYVJlbGFbZF0uaXNDPXRydWU7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYi5yZWxhdG8uZGlzcGxheSA9IHNob3c7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGMpIHsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJnW2VkXFw6dG9ndG9waWNpZD0nIiArIGEgKyAiJ10iKS5zdHlsZS5kaXNwbGF5ID0gc2hvdzsNCiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gJ21pbnVzJykgew0KICAgICAgICAgICAgICAgICAgICB1dGQoYixhLHNob3cpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgoYi5jYWxsfHxiLmJvdW5kYXJ5fHxiLnN1bW1hcnkpJiZjPT09J3BsdXMnKSB7DQogICAgICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdyx0cnVlKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChiLmNhbGwmJiFjKSB7DQogICAgICAgICAgICAgICAgdXRkKGIsYSxzaG93LHRydWUpDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoYi5zdW1tYXJ5JiYhYykgew0KICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdykNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChiLmJvdW5kYXJ5JiYhYykgew0KICAgICAgICAgICAgICAgIHV0ZChiLGEsc2hvdykNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gZXh0cmFSZWxhRmluKCkgew0KICAgIHZhciBleHRyYWtleXM9T2JqZWN0LmtleXMoZXh0cmFSZWxhKTsNCiAgICBmb3IodmFyIGk9MDtpPGV4dHJha2V5cy5sZW5ndGg7aSsrKXsNCiAgICAgICAgdmFyIGV4dHJhT2JqPWV4dHJhUmVsYVtleHRyYWtleXNbaV1dOw0KICAgICAgICBpZihleHRyYU9iai5pc0MgPT09IHRydWUpew0KICAgICAgICAgICAgdmFyIGZzaG93PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4dHJhT2JqLmZyb21pZCkuc3R5bGUuZGlzcGxheSAhPT0nbm9uZSc/IHRydWU6IGZhbHNlOw0KICAgICAgICAgICAgdmFyIHRzaG93PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4dHJhT2JqLnRvaWQpLnN0eWxlLmRpc3BsYXkgIT09J25vbmUnPyB0cnVlOiBmYWxzZTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4dHJhT2JqLmlkKS5zdHlsZS5kaXNwbGF5PWZzaG93ICYmIHRzaG93PyAnYmxvY2snOiAnbm9uZSc7DQogICAgICAgICAgICBleHRyYVJlbGFbZXh0cmFrZXlzW2ldXS5pc0MgPSBmYWxzZTsNCiAgICAgICAgfQ0KICAgIH0NCn0='))</script>
  </body>
</html>
